@astrotrain

Как увеличить скорость вставки в InnoDB таблицу?

Если ли возможность увеличить скорость insert в innodb? Myisam таблица почти мгновенно заполняется результатом в 2 миллиона записей, а вот innodb - жутко долго. В противовес этому update в myisam выполняется очень медленно, а в innodb (по информации) намного быстрее. Мне нужно какой-нибудь один тип выбрать и настроить базу так чтобы и встака и обновление происходили быстро. Может можно как-то твикнуть настройки? Спасибо!
  • Вопрос задан
  • 2099 просмотров
Пригласить эксперта
Ответы на вопрос 4
BEGIN TRANSACTION
-- Вставляете строки порциями по 10-100К штук
COMMIT
Ответ написан
opium
@opium
Просто люблю качественно работать
да вроде бы и апдейты были побыстрее в майисаме.
Ответ написан
mahoho
@mahoho
Full stack certified PHP developer.
Используйте INSERT с множественными VALUES:
INSERT INTO table (col1, col2)
VALUES
(1,2),
(3,4),
....

Это намного быстрее, чем вставлять по одной строке - индексы будут перестроены один раз после завершения транзакции. Или же же более быстрый способ - LOAD DATA INFILE, массовая загрузка данных из внешнего (локального относительно mysqld) файла.
Ответ написан
@shagguboy
отключить индексы, отключить транзакционность нафик, залить данные через LOAD DATA INFILE, включить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы