我正在运行MySQL 5.5.37。我有一个cron作业设置,每6小时运行一次,以刷新查询缓存。我意识到,如果不这样做,那么缓存就会变得支离破碎,平均查询响应时间可能会增加一倍或三倍。95%的数据保存在MyISAM表中。
我的平均响应时间在15到30毫秒之间,只要我有cronjob运行。
这是正常行为吗?或者它是否表明我有一个应该解决的潜在问题?也许我的query_cache_min_res_unit值太低了,这会导致碎片化吗?还是碎片是不可避免的,刷新缓存是完全正常的?
QUERY CACHE
Query cache is enabled
Current query_cache_size = 4.08 G
Current query_cache_used = 1.05 G
Current query_cache_limit = 3.24 G
Current Query cache Memory fill ratio = 25.79 %
Current query_cache_min_res_unit = 4 K发布于 2014-09-16 20:14:47
根据存储引擎的不同,刷新查询缓存是可以的
InnoDB将时间花在微观管理数据更改上。这包括交叉调度查询缓存。
我有一个2年前的帖子(Sep 05, 2012:频繁查询缓存失效的开销值得吗?),我建议通过crontab运行FLUSH QUERY CACHE。
我也有最近的帖子
Jun 07, 2014:为何查询?_缓存_默认情况下,类型从MySQL 5.6开始禁用吗?Jun 30, 2014:优化MySQL查询_缓存_最小_资源_单元解释如果一个人真正了解数据、结果集的平均大小以及查询缓存中应该有多少条目,那么如何尝试设置查询和查询。
除了对数据有这种预见性之外,碎片是不可避免的。
另一方面,如果您的所有数据都是MyISAM,那么您应该花时间通过了解您的数据来设置查询和查询。毕竟,MyISAM不缓存数据。它只缓存索引。
不管存储引擎是什么,运行FLUSH QUERY CACHE;都不需要设置查询和查询。它迅速消除了碎片化问题。如果数据集不是很大,请花时间调整数据和结果集的大小。你可以消除克罗尼卡。
更大的好处是:
https://dba.stackexchange.com/questions/76763
复制相似问题