Установите «тайм-аут ожидания блокировки» в MySQL

13

Где бы я указал максимальное время, в течение которого запрос будет ожидать блокировки в MySQL 5.0.68 до истечения времени ожидания?

Gaius
источник

Ответы:

6

Другими общими настройками тайм-аута (не только для блокировок, поскольку innodb_lock_wait_timeout применяется только к блокировкам строк InnoDB) могут быть wait_timeout и interactive_timeout (оба по умолчанию составляют 28 800)

Дерек Дауни
источник
1

Если вы превышаете 50-секундный тайм-аут InnoDB, у вас плохо спроектированное приложение!

Этот тайм-аут существует, чтобы ловить непослушные вещи, которые нельзя поймать другим способом.

Рик Джеймс
источник
1
Или из-за ошибок у меня очень занятый сервер mysql и mariadb, и взаимные блокировки - это обычное явление, которое не происходит постоянно. Даже если «невозможно». Если у вас есть сто миллионов строк и десять тысяч команд sql каждую секунду, вы найдете все виды ошибок в mysql (сбои), а также взаимоблокировки различных типов.
Джон
1
Это зависит от ситуации. Из документации mysql: Вы можете уменьшить это значение для высокоинтерактивных приложений или систем OLTP, чтобы быстро отображать отзывы пользователей или поместить обновление в очередь для последующей обработки. Вы можете увеличить это значение для длительных внутренних операций, таких как шаг преобразования в хранилище данных, которое ожидает завершения других крупных операций вставки или обновления.
g4b0
Проверка того, что приложение плохо построено ... да!
Ноа Дункан