ЗАГРУЗИТЬ ДАННЫЕ INFILE - какой движок, если у меня большой файл? - PullRequest
1 голос
/ 22 декабря 2011

Мне нужен совет от человека, который уже сталкивался с моей проблемой.

У меня более 10 мил.Записывает * .txt файл для импорта в новую таблицу.Во-первых, я искал несколько «советов экспертов» относительно лучшего выбора для стола Engine.

К сожалению, я нашел 50% мнений для InnoDB и 50% мнений для MyISAM.Исходя из вашего опыта, принимая во внимание объем информации и тот факт, что я буду использовать LOAD DATA INFILE, что является лучшим выбором для моего механизма таблиц?И, пожалуйста, дайте мне несколько веских аргументов :), а не просто совет использовать один или другой!

Во-вторых: После того, как я решу, какой двигатель выбрать, скажем, MyISAM, если в будущем мне понадобитсяиспользовать таблицу в транзакции. Рекомендуется «временно» изменить механизм таблицы на InnoDB, чтобы выполнить транзакцию, а затем вернуться к первому выбранному варианту?

Ответы [ 2 ]

1 голос
/ 22 декабря 2011

Innodb любит иметь свои индексы в памяти, он значительно замедляется, если не может.MyISAM работает намного лучше в ситуациях с нехваткой памяти и большими наборами данных.В MyISAM также есть несколько уникальных опций, таких как таблицы MERGE, которые позволят вам разбивать большие таблицы на более мелкие и создавать виртуальные таблицы / таблицы слияния из небольших таблиц.

Если вы делаете много изменений (вставить / обновить / удалить), тогда Innodb будет лучше (меньше проблем с блокировкой).Но MyISAM будет хорошо работать, если у вас нет одновременных изменений.

Переключение типов таблиц занимает слишком много времени, но это вариант.Если вы хотите иметь как MyISAM, так и Innodb, настройте репликацию.Вы можете иметь таблицу Innodb на одном сервере и MyISAM на сервере репликации.Типы таблиц не обязательно должны быть одинаковыми на основных / подчиненных устройствах.

1 голос
/ 22 декабря 2011

Я думаю, InnoDB - лучший вариант в вашем случае. Взгляните на эту статью: http://www.mysqlperformanceblog.com/2008/07/03/how-to-load-large-files-safely-into-innodb-with-load-data-infile/

...