Выполнение SQL-запросов слишком плохо для MySQL
Я запускаю следующий SQL-запрос на платформе MySQL.
Таблица A - это таблица, в которой есть один столбец (первичный ключ) и 25K строк. Таблица B имеет несколько столбцов и 75 тысяч строк.
Выполнение следующего запроса занимает 20 минут. Я буду рад, если вы могли бы помочь.
INSERT INTO sometable
SELECT A.PrimaryKeyColumn as keyword, 'SomeText', B.*
FROM A, B
WHERE B.PrimaryKeyColumn = CONCAT(A.PrimaryKeyColumn, B.NotUniqueButIndexedColumn);
2 ответа
Запустить SELECT
без INSERT
чтобы увидеть, если проблема с SELECT
или нет.
Если это с SELECT
следуйте документации MySQL, объясняющей, как оптимизировать запросы, используяEXPLAIN
,
Если SELECT
работает нормально, но INSERT
занимает много времени, убедитесь, что у вас нет много ненужных индексов на sometable
, Кроме того, вам может потребоваться выполнить некоторые настройки MySQL и / или настройки ОС (например, производительность памяти или диска), чтобы получить ощутимое повышение производительности с помощью INSERT
,
Если я правильно понял, вы пытаетесь вставить 1,875 миллиардов записей (что не соответствует предложению where).
Для тех 20 минут звучит не так уж плохо....