gpt4 book ai didi

mysql - 使用主键偶尔更新缓慢

转载 作者:可可西里 更新时间:2023-11-01 07:58:03 26 4
gpt4 key购买 nike

我在 MySQL 5.5.53 中有一个 InnoDB 表,其中的简单更新如下

UPDATE mytable SET acol = 'value' WHERE id = 42;

挂几秒钟。 id 是表的主键。

如果我启用查询分析使用

SET profiling = 1;

然后运行查询并查看配置文件,我看到如下内容:

show profile;
+------------------------------+----------+
| Status | Duration |
+------------------------------+----------+
| starting | 0.000077 |
| checking permissions | 0.000008 |
| Opening tables | 0.000024 |
| System lock | 0.000008 |
| init | 0.000346 |
| Updating | 0.000108 |
| end | 0.000004 |
| Waiting for query cache lock | 0.000002 |
| end | 3.616845 |
| query end | 0.000016 |
| closing tables | 0.000015 |
| freeing items | 0.000023 |
| logging slow query | 0.000003 |
| logging slow query | 0.000048 |
| cleaning up | 0.000004 |
+------------------------------+----------+

也就是所有的时间都花在了end上。

The documentation说:

  • end

    This occurs at the end but before the cleanup of ALTER TABLE, CREATE VIEW, DELETE, INSERT, SELECT, or UPDATE statements.

这么简单的语句怎么会在这种状态下停留这么长时间?

最佳答案

原来是查询缓存的问题。

如果我禁用它

SET GLOBAL query_cache_size = 0;
SET GLOBAL query_cache_type = 0;

问题消失了。

一定是使查询缓存条目无效导致查询挂起这么长时间。

关于mysql - 使用主键偶尔更新缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44244482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com