With the introduction of metadata locking in MySQL 5.5, it is much more
common to see queries stuck in the “Waiting for table metadata
lock” state.
If you see a query stuck in the “Waiting for table metadata lock”
state, waiting for a MyISAM table, then it is because this table
has been included as part of some uncommitted transaction
(whether intentionally or not).
In fact, it could be as simple as issuing SET AUTOCOMMIT=0
followed by a SELECT against a MyISAM table (a transaction can be
started 3 ways: START TRANSACTION, BEGIN, and SET AUTOCOMMIT=0).
After that, the table will be locked to other DDL statements
until the transaction is committed (or ended).
This metadata lock is meant for DDL statements, and so that is
what it blocks. However, once a DDL statement is blocked and
waiting, then all queries …
Showing entries 1 to 2
Mar
14
2013
May
14
2011
This is another article in a series of articles titled "A few notes ..." in which I will be posting some important information about locking concepts, different types of locks and what locks table engines support. Just like the previous article, the purpose of this article is to highlight important aspects that you should have in the back of your mind when developing applications.
Showing entries 1 to 2