我已经search了所有的interwebs,但无法find任何文件。 我如何设置我的查询caching永不过期?
就我所知,答案是你不能影响MySQL查询caching的这个方面。 MySQLpipe理查询caching本身,大部分情况下它工作的很好。
但是,如果可以的话,它不应该有任何显着的差异。 通过启用查询caching,你已经离开了MySQL,必须在100%的时间内parsing和运行一个特定的通用查询,而不得不这样做只能说0.01%的时间。
通过延长超时值你不会获得太多的收益,因为对于caching已经很好的相同请求的99.99%是没有什么区别的,唯一可以改变的是0.01%请求caching已过期。
我不知道MySQL查询caching中的任何时间到期。 据我所知,到期只在以下情况下完成:
1)表更改(mysql不检查是否会影响您的查询 – 该表上的每个插入/更新都会导致该表上的所有查询过期)
2)查询caching已满,旧的和很less使用的查询已过期
所以我假设你遇到了这些情况之一。 你有没有通知任何特定的时间长度查询保持多久? 您可以设置定期运行查询的cron作业,这将预填充caching。 当这个长时间运行的查询正在运行时,来自web的查询仍将使用caching的数据。 完成后,将replacecaching中的数据。
高负载的问题是因为当caching的数据到期时,许多客户端同时运行非caching查询。 使用cron预填充caching将保证只有一个重查询实例同时发生。 其他方法是在Web应用程序中进行caching,只允许一个实例重新加载实际数据,而其他方法则在此期间仍然使用caching的数据。