首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL查询缓存-存储联合调用的哪一部分?

问MySQL查询缓存-存储联合调用的哪一部分?
EN

Server Fault用户
提问于 2012-08-21 07:40:37
回答 1查看 510关注 0票数 1

我读到了关于mysql的query cache,我读到了这个..

只缓存完整的查询--这意味着它不适用于UNION的子选择、内联视图和部分。这也是常见的问题。

“联邦的一部分”是什么意思?我正在开发一个网站,它利用了很多联盟的网站,我认为它们被缓存了,但我想要确保。

谢谢!

EN

回答 1

Server Fault用户

回答已采纳

发布于 2012-08-21 08:42:41

UNION组合子查询,这些子查询本身不被query cache机制考虑,只有完整的查询及其最终结果。

例如,假设此查询将由应用程序频繁地运行:

代码语言:javascript
复制
select 'nb1', count(*) from table1 group by col1
UNION
select 'nb2', count(*) from table2 group by col2
UNION
select 'nb3', count(*) from table3 group BY col3

当在table1、table2、table3中重新运行时,查询缓存可以跳过执行并重新发送缓存的结果。

如果应用程序中的另一步运行此查询,“它不适用于UNION的部分”意味着:

代码语言:javascript
复制
 select 'nb1', count(*) from table1 group by col1

然后,即使结果在某种程度上已经缓存为UNION查询结果的一部分,查询缓存仍然无法识别利用它。它将执行它,并将其结果作为一个完全独立的查询放在缓存中。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/419531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档