以下查詢花費很長的時間,但它應該立即執行:簡單的MySQL更新查詢速度很慢
mysql> UPDATE articles SET description='test' WHERE article_id=6;
Query OK, 1 row affected (40.80 sec)
Rows matched: 1 Changed: 1 Warnings: 0
- article_id的數據類型爲int自動增量
- 表只擁有約1000個記錄
我試着分析這個查詢,你可以看到它執行更新很快但是因爲某種原因掛起:
mysql> SHOW PROFILE FOR QUERY 1;
+----------------------+-----------+
| Status | Duration |
+----------------------+-----------+
| starting | 0.000079 |
| checking permissions | 0.000016 |
| Opening tables | 0.000020 |
| System lock | 0.000011 |
| Table lock | 0.000864 |
| init | 0.000078 |
| Updating | 0.000315 |
| end | 40.798736 |
| query end | 0.000028 |
| freeing items | 0.000014 |
| closing tables | 0.000012 |
| logging slow query | 0.000010 |
| logging slow query | 0.000046 |
| cleaning up | 0.000012 |
+----------------------+-----------+
14 rows in set (0.00 sec)
我試着將tmp目錄掛載到RAM,以加快查詢速度,但這也沒有幫助。
我發現如果我刷新表格,問題就會暫時消失,但它會在一段時間後再次出現。
任何幫助表示讚賞。
是否有其他的東西在同一時間對數據庫運行?您可能會遇到鎖定問題,其中一些其他查詢已鎖定相關行。 – 2012-04-07 18:51:44