0

複数のテーブルがlockedあり、それらが他のクエリの実行を妨げているようです。この問題の原因と、それを防ぐ方法を教えてください。これらをリリースするために、その間に何ができlocksますか? mysql のドキュメントを読みましたが、この問題を防ぐための手順がよくわかりません。

+----------+----------+--------+-------------+
| Database | Table    | In_use | Name_locked |
+----------+----------+--------+-------------+
| bd1      | table1   |      0 |           0 |
| bd1      | table2   |      5 |           0 |
| bd1      | table3   |      0 |           0 |
| bd1      | table4   |      1 |           0 |
| bd1      | table5   |      0 |           0 |
| bd1      | table6   |      2 |           0 |
| bd1      | table7   |      4 |           0 |
+----------+----------+--------+-------------+

エンジンの INNODB ステータスを表示します。

---TRANSACTION A7DF86B, ACTIVE 10 sec starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 376, 1 row lock(s)
MySQL thread id 170083, OS thread handle 0x15a8, query id 1780479 23.20.117.233 Server2 Updating
UPDATE table7 SET EId = 'b457200', LEd = '2013-02-19 16:03:34', ELR = 'y', LU = '2013-02-19 16:03:
34' WHERE (ObKey = '79321fc7b5ac')
4

1 に答える 1

0

まず、これらのテーブルを参照するクエリを見つけて、それらがどのように使用されているかを理解する必要があります。次に、同時実行性を高める方法として、いくつかのクエリ ヒントの使用を試すことができます。http://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.htmlを参照してください。

于 2013-02-19T22:19:06.933 に答える