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


13

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

Ответы:


6

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



1

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

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


1
Или из-за ошибок у меня очень занятый сервер mysql и mariadb, и взаимные блокировки - это обычное явление, которое не происходит постоянно. Даже если «невозможно». Если у вас есть сто миллионов строк и десять тысяч команд sql каждую секунду, вы найдете все виды ошибок в mysql (сбои), а также взаимоблокировки различных типов.
Джон

1
Это зависит от ситуации. Из документации mysql: Вы можете уменьшить это значение для высокоинтерактивных приложений или систем OLTP, чтобы быстро отображать отзывы пользователей или поместить обновление в очередь для последующей обработки. Вы можете увеличить это значение для длительных внутренних операций, таких как шаг преобразования в хранилище данных, которое ожидает завершения других крупных операций вставки или обновления.
g4b0

Проверка того, что приложение плохо построено ... да!
Ноа Дункан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.