В версии 5.5.30 innodb_print_all_deadlocks
стало доступным. Установите его на ON
, но имейте в виду, что используемый им файл журнала (вероятно, error.log
) может загромождать диск.
Техники для уменьшения количество тупиков:
- Ускорение транзакций.
- Удалите операторы DML из транзакции (когда это нормально).
- Если в каком-либо операторе есть
IN
или OR
(например, DELETEing
несколько строк), отсортируйте их.
Последняя может превратить тупик в "locK_wait_timeout", в котором одна из транзакций молча останавливается, пока другая не завершится.