Загрузка перерывов после 3203 вставок

Я загружаю текстовый файл с примерно 30 000 строк в Mysql-DB.

Загрузка всегда прерывается ровно после 3203 строк. Сплит-файл, содержащий менее 3203 строк, работает нормально. Проблема, конечно, не в строке 3203. Скорее в Mysql-конфигурации (например, max_nbrs_of_inserts) строки

выглядят следующим образом:

...
09.01.92,06:59:27,  34,1322, 31,   2,06:59:27,00:00:00,     16.00,      0.00
...

Каждая из этих строк будет генерировать SQL-INPUT как следующий пример:

$query  = "INSERT INTO  tmp_GF

(

fldGFDATUMZEIT,

fldNUMMER,

fldRespond,

fldGFP,

fldBesNr,

fldBEGINN,

fldDAUER,

fldVORRAT,

fldVERZEHR,

fldSave,

fldZeig  

)values(

'$GFDATUMZEIT',

$NUMMER,

$Respond,

$GFP,

$BesNr,

'$BEGINN',

'$DAUER',

$VORRAT,

$VERZEHR,

0,

'$Zeig') ";

php.ini И настройки загрузочного скрипта:

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 3000);
ini_set('max_execution_time', 3000);

Ubuntu версия 11.10

Версия Mysql

protocol_version    10
version     5.1.58-1ubuntu1
0
задан 22 May 2012 в 09:49

1 ответ

MySQL имеет свой собственный максимальный размер для одного запроса под названием max_allowed_packet . По умолчанию это небольшое значение (по умолчанию MySQL составляет 1 МБ, ваш дистрибутив может быть больше), но его можно увеличить до 1 ГБ.

Увеличение его не повредит производительности для существующих запросов. Причина, по которой он установлен по умолчанию небольшим, заключается в простом обнаружении ошибок, которые могут возникнуть, если вы не ожидаете очень больших пакетов.

Теперь, вы не упомянули конкретное сообщение об ошибке, но если я правильно угадал причину вашей проблемы, MySQL, вероятно, сгенерирует это сообщение об ошибке («Слишком большой пакет» на сервере и «Потерянное соединение с сервером MySQL во время запроса» или подобное на клиенте).

0
ответ дан 22 May 2012 в 09:49

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

Похожие вопросы: