繁体   English   中英

MySQL快取,请至少10分钟后才刷新更新

[英]MySQL cache, do not flush on update until 10 minutes old

是否有可能使MySQL在表更新时不刷新缓存并在刷新缓存之前将其保持至少10分钟?

基本上,我正在缓存一个查询,该查询分析约200k条以上的记录并返回10行数据。 查询大约需要1.5-3秒。 我正在使用SQL_CACHE来缓存该查询,第一次查询后需要0.007(+-)秒。 该表非常频繁地更新(在不到一分钟内多次更新)。 因此,我想让MySQL在刷新该缓存的查询以重新计算之前,将其至少保留10分钟。

顺便说一下,查询数据对于站点上的每个用户都是唯一的。

我正在使用Codeigniter框架,我知道它们具有内置的查询缓存功能,但是它是基于文件系统的。 这就是为什么我更喜欢MySQL的缓存功能...

谢谢大家的帮助!

三件事情导致要从MySQL缓存中删除:

  1. 没有足够的空位
  2. 查询背后的数据已更改
  3. MySQL进程重启

您对#1有一定的控制权,因为您可以更改缓存大小。 但是,其他查询仍然可以占用缓存空间。 我不知道控制#2有多重要。 您可能要使用SELECT SQL_NO_CACHE来阻止那些人进入缓存。

从事物的声音来看,MySQL无法满足您以所需方式缓存事物的需求。

您是否考虑过优化查询? 关于这一点,您可以发布实际查询吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM