2012-03-19 2 views
9

Если правильно понимать, работает FLUSH TABLES WITH READ LOCK получает глобальную блокировку чтения.Как я могу увидеть глобальные блокировки в mysql (innodb)?

Есть ли какая-либо команда, которую я могу запустить в клиенте mysql, который показывает мне, что блокировка в настоящее время получена?

+0

http://dev.mysql.com/doc/refman/5.1/en/processlist-table.html – ajreal

+0

Я пробовал 'show full processlist'. Он может показать, что запрос «обновления» ожидает освобождения блокировки, но он не показывает, кто держит блокировку. – davidbrai

+0

Он делает: 'ПЕРВАЯ команда перед записью (вставка, обновление, удаление) является владельцем блокировки – ajreal

ответ

8

Попробуйте это:

SHOW ENGINE INNODB STATUS; 

Он покажет владелец замков и официантов (и много других вещей, связанных с InnoDB)

http://dev.mysql.com/doc/refman/5.0/en/innodb-monitors.html

http://www.xaprb.com/blog/2006/07/31/how-to-analyze-innodb-mysql-locks/

+0

Я знаком с командой, но она не отображает глобальные блокировки, полученные «флеш-таблицами с блокировкой чтения», если я не пропустил ее. – davidbrai

0

Это не глобальный lock.once вы выходите из сессии, он выпускает его

Смежные вопросы