2016-12-16 5 views
0

Пример:MySQL: Как найти строки, заблокированные транзакции

START TRANSACTION; 
UPDATE books SET printedCount=1000 WHERE id=5; 

Как я могу узнать, какие строки таблицы books заблокированы открытых сделок (или идентификаторами, первичные ключи этих строк)? Я хочу отслеживать эту информацию, чтобы предотвратить взаимоблокировки в моем веб-приложении с высокой нагрузкой, возможно, чтобы задержать некоторые запросы на обновление, если строки, которые могут быть затронуты этими запросами, уже заблокированы.

ответ

1

SHOW ENGINE INNODB STATUS;

К сожалению, нет никакого способа, чтобы поймать все тупики. Вместо этого запустите это периодически, чтобы проверить, не зашел ли тупик; то работайте над этим делом.