如何在AWS RDS中为MySQL数据库刷新QUERY CACHE?

时间:2015-02-11 20:17:47

标签: mysql caching amazon-web-services rds

我在AWS RDS中运行了一个MySQL 5.6 DB。我正在改进我的一些索引。我在本地实例上使用FLUSH QUERY CACHE来清除执行此类开发时的查询缓存。

我有一个查询,第一次调用它需要10秒,之后每次需要0.2秒。我期待查询的FLUSH QUERY CACHE次调用需要10秒,但它仍然只需要0.2秒。

这个stackoverflow question指出在Ubuntu上我需要在清除查询缓存之前清除memory disc caching。遗憾的是,AWS RDS不允许终端访问RDS实例。

如何在AWS RDS中运行的MySQL 5.6 DB上清除查询缓存?

1 个答案:

答案 0 :(得分:6)

FLUSH QUERY CACHE不会清除MySQL中的查询缓存。

  

您可以对查询缓存进行碎片整理,以便通过FLUSH QUERY CACHE语句更好地利用其内存。该语句不会从缓存中删除任何查询。

     

RESET QUERY CACHE语句从查询缓存中删除所有查询结果。 FLUSH TABLES语句也可以这样做。

     

- http://dev.mysql.com/doc/refman/5.6/en/query-cache-status-and-maintenance.html

此外,链接的问题与查询缓存无关。查询缓存使用的内存在启动时分配,永远不会返回给系统。查询缓存不受文件支持,因此不会因刷新到OS文件系统缓存而受到影响。

最后,我不确定为什么在索引维护过程中,通常需要清除查询缓存。对基准查询进行基准测试时,使用SELECT SQL_NO_CACHE ...将导致查询不被查询缓存服务。