Потеря данных при mysql_unbuffered_query

Abadonna

Новичок
Потеря данных при mysql_unbuffered_query

Суть проблемы: Из базы выбирается достаточно толстая пачка данных (десятки-сотни тысяч записей), после чего тупо складываются в файл на диск для последующей скачки кому надо. Для съэкономить память и время решили использовать mysql_unbuffered_query. При тестировании получили 1 эпизод, когда mysql_fetch_assoc не получил данных на вход примерно после того, как 4/5 списка было получено.
Предполагаемые причины:
1) Поскольку сервер довольно гружёный, MySQL не хватило ресурса и он прибил старый поток, чтобы пустить новый.
2) php-скрипт сработал быстрее MySQL, т.е. база не успела приготовить очередную пачку данных, скрипт решил, что ето всё и пошел дальше.
Вопрос: кто нить с подобным сталкивался? другие варианты причин? лечится ли и как?
 

vovanium

Новичок
Блокируй таблицы при использовании mysql_unbuffered_query чтобы в них небыло никаких изменений пока достаешь данные.
 

Abadonna

Новичок
2 4m@t!c
Минуты. Зависит от объема данных.

-~{}~ 23.01.06 16:55:

2 vovanium
Попробую.
Сложность ситуации в том, что баг - эпизодический. И пока что точная ситуация не определена.
 

4m@t!c

Александр
>Минуты. Зависит от объема данных.
это не ответ. есть конкретная цифра, которая прописана в php.ini. Если скрипт не укладывается в отведенное ему время, то PHP останавливает его исполнение, в следствие чего могут быть не втянут все данные.
 

Abadonna

Новичок
2 4m@t!c
Скрипт кроновский. Соответственно установлен set_timelimit(0).
Далее. Скрипт НЕ падает. MySQL просто перестает отдавать данные. После чего скрипт корректно выполняет все действия, которые должен выполнить после завершения получения данных от MySQL.
 
Сверху