2012-03-19 27 views
9

Nếu hiểu chính xác, hãy chạy FLUSH TABLES WITH READ LOCK mua lại khóa đọc chung.Làm thế nào tôi có thể thấy các khóa toàn cục trong mysql (innodb)?

Có lệnh nào tôi có thể chạy trong ứng dụng khách mysql hiển thị cho tôi khóa đó hiện đang được mua không?

+0

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

+0

Tôi đã thử 'hiển thị toàn bộ danh sách xử lý'. Nó có thể cho thấy rằng một truy vấn "cập nhật" đang chờ khóa được phát hành, nhưng nó không cho thấy ai giữ khóa. – davidbrai

+0

Nó thực hiện, 'lệnh ĐẦU TIÊN trước khi viết tất cả (chèn, cập nhật, xóa) là chủ sở hữu của khóa ' – ajreal

Trả lời

8

Hãy thử điều này:

SHOW ENGINE INNODB STATUS; 

Nó sẽ hiển thị chủ sở hữu của ổ khóa và bồi bàn (và rất nhiều thứ khác liên quan đến 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

Tôi quen thuộc với lệnh này, nhưng nó không hiển thị ổ khóa toàn cầu được mua lại bởi 'bảng xóa bằng khóa đọc 'trừ khi tôi bỏ qua nó. – davidbrai

0

Đây không phải là một lock.once toàn cầu bạn ra khỏi phiên, nó phát hành nó

Các vấn đề liên quan