我读到了关于mysql的query cache,我读到了这个..
只缓存完整的查询--这意味着它不适用于UNION的子选择、内联视图和部分。这也是常见的问题。
“联邦的一部分”是什么意思?我正在开发一个网站,它利用了很多联盟的网站,我认为它们被缓存了,但我想要确保。
谢谢!
发布于 2012-08-21 08:42:41
UNION组合子查询,这些子查询本身不被query cache机制考虑,只有完整的查询及其最终结果。
例如,假设此查询将由应用程序频繁地运行:
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的部分”意味着:
select 'nb1', count(*) from table1 group by col1然后,即使结果在某种程度上已经缓存为UNION查询结果的一部分,查询缓存仍然无法识别利用它。它将执行它,并将其结果作为一个完全独立的查询放在缓存中。
https://serverfault.com/questions/419531
复制相似问题