Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Добрый день, скажите пожалуйста как быть в такой ситуации:
выполняется заливка записей из *.csv файла в проиндексированную таблицу.
Тип таблицы - MyISAM.
Команда LOAD DATA INFILE перестает выполняться в двух случаях:
1) Пользователь нажал кнопку отменить, и соответственно процесс LOAD DATA INFILE прибивается командой
KILL id_process_LOAD DATA INFILE
2) Пропало соединение с MySQL Server.
По поводу этих двух случаях есть вопросы:
Возможна порча индекса, так как будет автоматически выполняться переиндексация таблицы с миллионами записями (а процесс грубо останаливается командой KILL id_process ( по другому нельзя или же как то дать знать MySQL Serverу знак - ты давай быстренько заканчивай переиндексацию, а мы подождём, либо закрыть - открыть новое соединение)....
ну и часть закаченных данных вроде как придется удалять, и опять же таблица с построенных индексом не так быстро даст удалить эти записи, а выключение-включение индекса запустит переиндексацию Subpartition-a хранящего примерно 40-50 млн записей, если не всю таблицу целиком....
Можно ли как то запустить SQL запрос LOAD DATA INFILE с отсроченной вставкой, то есть пока полностью не завершится - не выполнять реальную вставку в таблицу?
Как правильно обрабатывать эти два случая?
Отредактированно VladimirPivovar (04.01.2014 15:58:33)
Неактивен
У MySQL нет инструментов для поддержки прерванной вставки в MyISAM (транзакции Innodb вам не подойдут из-за производительности вставки). Вставляйте в новую таблицу, а потом дайте команду серверу, чтобы он из этой новой таблицы вставил в основную (на сервере вероятность прерывания вставки минимальна).
Неактивен
Страниц: 1