mysql - 简单的 MySql 更新查询很慢

标签 mysql sql sql-update

以下查询需要很长时间,尽管它应该立即执行:

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 以加快查询速度,但这也无济于事。

我发现如果我 FLUSH 表,问题会暂时消失,但一段时间后又会再次出现。

感谢任何帮助。

最佳答案

已解决 - 结果是 mysql 缓存大小太大。降低它的大小解决了这个问题。

关于mysql - 简单的 MySql 更新查询很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10057314/

相关文章:

mysql - 尝试打印部门中博士生的部门名称,除了那些选修大学几何的专业

Mysql使用准备好的语句选择和插入

sql - 在 Delphi TDBGrid 中对 SQL 结果集进行排序,其中结果集包括 Firebird RDB$DB_KEY(排序依据不起作用)

php - 相同的查询效果不同

MYSQL 在 INSERT 时获取自动增量/mysql_insert_id()

php - 有没有办法暂时禁用 phpMyAdmin 中的重复条目?

MYSQL 更新表错误

mysql - 不同行的 SQL SUM()

sql - Oracle SQL 语句 select u'' from dual

Mysql:更新以创建间隔不超过最大分钟数的访问条目组