2009-07-17 5 views
1

В настоящее время я занимаюсь исследовательским проектом, и мне дали около 400 ГБ данных. Они все пары, и в настоящее время я использую данные загрузки mysql в свой db. Я рассмотрел довольно много вариантов оптимизации mysql для вставки, но он слишком долго заканчивается (оценка составляет 118 дней).Хорошие требования к БД

А затем я посмотрел на лучший ключ, магазин ценностей вокруг: Токийский кабинет. Мне это очень нравится, быстро и легко, и все просто. Тем не менее, он не позволяет идентичные ключи встречаться более одного раза. Это НЕ соответствует моему требованию.

(Мои данные что-то вроде < 1, 2> < 1, 3> < 1, 4> < 2, 9> ... и т.д.)

Любой здесь есть что-то хорошее, чтобы рекомендовать ? Я предпочитаю что-то, что имеет API для php (потому что я буду использовать веб-разработчика для внутреннего внутреннего интерфейса)

Что-то быстрее, чем mysql предпочтительно (Единственные запросы, которые я буду запускать, это «SELECT c1 from table WHERE c2 = X "или" SELECT c2 FROM table WHERE c1 = X ")

Я должен вставить все данные один раз, чтобы позволить выборам работать. Таким образом, вставка не может занимать больше недели на мой размер данных.

(Распространяется нормально, у меня есть кластер).

+0

Что такое диапазон и область ваших данных? Почему именно вы решили вставить данные в базу данных MySQL? –

+0

Все, что я делаю, вставив: <1, 2> <2, 3> <1, 3> как это. существует только одна таблица с двумя столбцами с первичным ключом (c1, c2) и другим ключом (c2, c1) для целей повторного создания – disappearedng

ответ

1

Вы использовали LOAD DATA INFILE раньше? Это самый быстрый способ загрузки данных в MySQL. 118 дней для 400 ГБ звучит так, как будто вы повторяете, выполняя кучу INSERT операторов для каждой строки ...

+0

Теперь я использую LOAD DATA IN FILE – disappearedng

+0

Хорошо, я изменил исходный код для mysql и перекомпилировал мой оптимизированный версия. Теперь он по-прежнему занимает не менее 18 дней. Любые хорошие рекомендации по рекомендации? – disappearedng

0

Да, 400 гигабайт данных заставит MySQL умолять о пощаде. Вы должны использовать Oracle или Microsoft SQL.

Даже тогда, как только вы получите эти данные в БД, что вы планируете с ним делать? Каждый запрос займет несколько минут.

+0

Ну, вы видите, что это не коммерческая вещь. Несколько минут для запроса допустимы. – disappearedng

Смежные вопросы