首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加强查询缓存范围,定期重新查找

加强查询缓存范围,定期重新查找
EN

Database Administration用户
提问于 2016-12-20 19:49:54
回答 1查看 25关注 0票数 1

假设我有一个我想被缓存的查询,而只有这个查询,任何其他查询都是无关的。

由于我的数据库接收了大量的流量,我的缓存空间迟早会耗尽,而缓存的查询将失效。我是否可以设置某种机制(仅在MySQL中,没有外部工具),它只允许对该查询进行缓存,并且可以说,每天晚上它都更新缓存的结果?

EN

回答 1

Database Administration用户

发布于 2016-12-22 16:38:19

MySQL中有两种类型的“缓存”

  • 数据和索引块的基本缓存
  • “查询缓存”。

两者都有可配置的限制。

“缓存”意味着保留有限的空间。当您“用完”空间时,会有一些东西从缓存中跳出来,以便为新项目腾出空间。被淘汰的通常是“最近使用最少的”,如果没有其他信息,很快就不太可能再次被使用了。

所以,我不知道问题出在哪里。

另一方面,也许你问的是另一个问题.使用“查询缓存”,将SELECTs保存在其中。这个缓存保存查询及其结果集。(同样地,当旧条目被填满时,就会出现旧条目,以便为新条目腾出空间。)QC的一个主要缺点是,当发生任何写入时,该表的QC中的所有条目都会被清除。因此,对于经常写入的表,QC实际上是无用的。

对于少数几个能够有效使用QC的系统,下面是我的建议:

代码语言:javascript
复制
query_cache_type = DEMAND
query_cache_size = 50M  -- no more than this, else purging is too costly
SELECT SQL_CACHE ...    -- on queries that can benefit from the QC
SELECT SQL_NO_CACHE ... -- for the rest
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/158740

复制
相关文章

相似问题

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