我在我的项目中使用PHP和MySQL 5.6,我想测试和记录哪些查询被缓存,哪些不是。
我知道如果同一个查询一次又一次地重复发送到DB,它会从缓存中检索结果而不是从DB中获取结果。现在,这就是我想要检查的原因,因为我想优化我的查询。
现在我如何记录这个?有什么办法吗?
提前致谢。
答案 0 :(得分:2)
假设您最感兴趣的是哪些查询没有被缓存,哪些是真正放慢速度的问题。您可能希望利用MySQL慢查询日志来发现它们并使用EXPLAIN来单独优化每个。
https://dev.mysql.com/doc/refman/5.6/en/slow-query-log.html
然而,这个答案是"这些不是您正在寻找的机器人"绝地技巧:它并没有直接回答你的问题,但却让你走上正轨。据我所知,MySQL查询缓存与大多数缓存层一样,通过基于哈希的密钥存储结果,使得直接查询 - 哈希关联相当痛苦:How to list cached queries in MySQL? (Qcache_queries_in_cache)