以下查询需要很长时间,但它应该立即执行:
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
我尝试对查询进行分析,您可以看到它快速执行更新,但由于某种原因它会挂起:
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,以加快查询速度,但这也无济于事。
我发现,如果我冲到桌子上,问题就会暂时消失,但是一段时间后它会再次出现。
感谢任何帮助。
答案 0 :(得分:1)
已解决 - 原来mysql缓存大小太大。降低它的大小可以解决问题。
答案 1 :(得分:0)
如果这是MyISAM表,您可能需要修复它。我有这种破坏数据文件的现象。