gpt4 book ai didi

mysql - "SQL_NO_CACHE"指令是否阻止查询使用缓存,或者只是阻止查询添加到缓存中?

转载 作者:行者123 更新时间:2023-11-29 06:56:14 27 4
gpt4 key购买 nike

手册指出“SQL_NO_CACHE”阻止查询被添加到缓存。但它没有说明任何关于使用缓存的信息,我可以看到。

我正在尝试对一个查询的两个版本进行基准测试,但它们已经在没有“SQL_NO_CACHE”的情况下运行。所以我不知道我的测试是否使用了查询缓存。

“SQL_NO_CACHE”指令是否阻止查询使用缓存,或者只是阻止添加缓存?

最佳答案

MySQL 查询缓存是根据查询的完整文字文本进行索引的,因此在功能上没有区别:即使忽略该指令,使用 SQL_NO_CACHE 的查询结果也将是存储在与没有 SQL_NO_CACHE 的查询不同的缓存“槽”中。 (事实上​​ ,简单地在查询的某处添加一个空格,或者将“SELECT”更改为“select” - 例如 - 也会“破坏”查询缓存,使其再次运行。MySQL查询缓存并不是特别复杂。 )

也就是说,通过使用 SQL_NO_CACHE 运行查询并观察 QCACHE_QUERIES_IN_CACHE 状态的快速测试确认 SQL_NO_CACHE 确实阻止了变量存储在缓存中,看看the source看起来好像 SQL_NO_CACHE 的存在也会阻止 MySQL 检查缓存中的结果。

关于mysql - "SQL_NO_CACHE"指令是否阻止查询使用缓存,或者只是阻止查询添加到缓存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576288/

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