Был сервер с MySQL 5.5. На нем база данных innodb, одна из таблиц достаточно большая 10-15 млн. записей, в ней все поля типа int, есть поле id (auto_increment). С этой базой, а в основном с этой большой таблицей, работали скрипты php (на этой же машине, коннектились на 127.0.0.1), которые достаточно долго ее обрабатывают, по несколько часов. Скрипты делают запросы типа INSERT/UPDATE, Select`ов порядка 5-10%. Все сделано так, что скрипты в большой таблице работают с разными записями, т.е. update`ы не пересекаются по данным. Запросы все простейшие, типа (update set ... where id=234354), но запросов много и они собираются по несколько десятков и выполняются все вместе между start transaction и commit. Все это прекрасно работало, хоть и тормозило, количество скриптов которые обрабатывали базу было до 50 штук. Недавно был выделен отдельный достаточно мощный cервер только под MySQL, но далеко (пинг порядка 15ms) от сервера со скриптами. И вот стал появляться странный баг, если запущенно несколько скриптов, то они начинают останавливаться, а коннекты обрываться. Один скрипт работает нормально. Когда их всего лишь 5, то они, через интервал от несколько минут до часа, начинают останавливаться на моменте когда пытаются сделать update/insert в базу, пока не остается один скрипт, который может пыхтеть несколько суток. Ошибок вроде никаких нет. Попробывал изменить способ соединения с mysql_connect на mysql_pconnect, но результата никакого нет, даже рваться стали чаще. Сменил сервер с скриптами на другой, результат тот же. Кто сталкивался с подобным? Что делать то? Может какие дедлоки стали возникать, ведь по сути поменялся только сервер с локального на удаленный.
|