Выполнение 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 минут звучит не так уж плохо....

Другие вопросы по тегам