Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 记录已缓存和未缓存的查询_Php_Mysql_Caching - Fatal编程技术网

Php 记录已缓存和未缓存的查询

Php 记录已缓存和未缓存的查询,php,mysql,caching,Php,Mysql,Caching,我在我的项目中使用PHP和MySQL 5.6,我想测试并记录哪些查询是缓存的,哪些不是缓存的 我知道,如果同一个查询反复发送到数据库,它将从缓存中检索结果,而不是从数据库中提取。现在,这就是我想要检查的,因为我想要优化我的查询 现在我如何记录这个?有办法吗 提前感谢。假设您最感兴趣的是哪些查询没有被缓存,哪些查询确实会减慢速度。您可能希望使用MySQL慢速查询日志来发现它们,并使用EXPLAIN单独优化每个日志 然而,这个答案是“这些不是你要找的机器人”绝地把戏:它不会直接回答你的问题,但会让

我在我的项目中使用PHP和MySQL 5.6,我想测试并记录哪些查询是缓存的,哪些不是缓存的

我知道,如果同一个查询反复发送到数据库,它将从缓存中检索结果,而不是从数据库中提取。现在,这就是我想要检查的,因为我想要优化我的查询

现在我如何记录这个?有办法吗


提前感谢。

假设您最感兴趣的是哪些查询没有被缓存,哪些查询确实会减慢速度。您可能希望使用MySQL慢速查询日志来发现它们,并使用EXPLAIN单独优化每个日志


然而,这个答案是“这些不是你要找的机器人”绝地把戏:它不会直接回答你的问题,但会让你走上正确的道路。据我所知,MySQL查询缓存与大多数缓存层一样,通过基于散列的键存储结果,这使得直接查询散列关联非常痛苦:

感谢您的回答和链接。参考的SO链接指出了缓存查询的数量,但没有指出查询本身。。实际上,我并不担心查询日志的速度太慢,因为它存储的查询占用了超过阈值的exec时间。我只是担心缓存查询,以便优化未缓存的查询并对其进行更改,使其足够快。实际上,也可以使用慢速查询日志记录处理的每个查询,允许您将它们作为一个整体浏览,并确定哪些足够相似,可以进行更新以使用缓存。我会这样做的。