2012-03-19 12 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

これは、 'すべての書き込み(挿入、更新、削除)がロックの所有者になる前にFIRSTコマンドを実行しました。 ' – 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

私はこのコマンドに精通していますが、逃していない限り、 'read lockでフラッシュテーブル'によって獲得されたグローバルロックは表示されません。 – davidbrai

0

これではありませんグローバルlock.onceあなたは、セッションから出て、それを解放する

関連する問題