Медленная вставка MYSQL в БД MyISAM
У меня есть файл (insert.sql), который имеет 250 тыс. Строк, таких как без ключа, без индекса:
INSERT `project_383`.`entity_metrics_build_1` VALUES ('d402afeb4630267f383b99875f37162d', 'ClMaxCycl', '-1');
INSERT `project_383`.`entity_metrics_build_1` VALUES ('d402afeb4630267f383b99875f37162d', 'ClLMethodsCalled', '0');
Я ввел его в мою таблицу MyISAM, используя mysql -u root -p project < insert.sql
Общее время 5 минут.
Я вижу в другой ветке, люди говорят, что они могут вставить миллионы строк менее чем за 1 секунду. Я действительно не понимаю. Может кто-нибудь объяснить мне, почему мой SQL такой медленный?
Мой сервер - 16-гигабайтный процессор Xeon.
1 ответ
Решение
Объедините их в один INSERT с несколькими предложениями VALUES:
INSERT `project_383`.`entity_metrics_build_1`
VALUES ('d402afeb4630267f383b99875f37162d', 'ClMaxCycl', '-1'),
('d402afeb4630267f383b99875f37162d', 'ClLMethodsCalled', '0'),
...;
Если вы посмотрите на файл, созданный mysqldump
Вот как это происходит.