Я только что создал пустую таблицу document_test
, которая является копией таблицы document
. Затем я добавляю новый хост столбца в document_test
и копирую все остальное из document
. Заявление как:
INSERT INTO document_test (id,col1,col2,col3,col4) SELECT * from document;
Таблица document
содержит около 5,5 миллионов строк, и я отключил ключи в document_test
, установил foreign_key_checks
в 0 и unique_checks
в 0. Эти INSERT
команды выполнялись в течение двух дней на Сервер Linux так и не был закончен. SHOW PROCESSLIST
отображает состояние «Отправка данных». Команда SELECT count(*) FROM document_test;
возвращает 0. Однако из команды SHOW TABLE STATUS
я вижу, что число строк в document_test
не равно нулю. Интересно, что, по-видимому, номер строки должен увеличиваться монотонно, но это НЕ. Результаты четырех последовательных запросов: 3299583, 3325775, 3299730 и 3341818!
Это то, что меня полностью смущает. Может ли кто-нибудь помочь мне в:
(1) это вставка данных?
(2) как закончить эту вставку своевременно?
(2) есть ли способ проверить состояние этой команды INSERT INTO SELECT
? (что дальше после «отправки данных»)
К сожалению, я не включил медленный журнал запросов и профилирование до запуска этой команды.