我在Mysql慢查询日志中得到一个慢查询。 Mysql慢查询日志显示查询需要超过4秒才能执行。
我在phpmyadmin中运行此查询,需要3秒钟。当我再次运行它时,它只需要0.0002秒。我猜有一个DB Cache或者什么。当我第二次运行时,它的执行时间可能不准确。
对于这种情况(执行时间很快),如何测试查询的实际执行时间?
答案 0 :(得分:2)
仅出于测试目的,您可以使用SQL_NO_CACHE
SELECT SQL_NO_CACHE * FROM `table` .....
另外,您可以将query_cache_type
设置为0以用于当前会话
SET SESSION query_cache_type=0;
答案 1 :(得分:1)
如果您正在讨论阻止MySQL缓存结果,您可以使用SQL_NO_CACHE
关键字。 (例如:SELECT SQL_NO_CACHE * FROM table1
)
答案 2 :(得分:0)
您可以在第二次执行查询之前稍微修改一下您的查询。
因此,查询缓存会将以下两个查询视为不同:
SELECT * FROM tbl_name
Select * from tbl_name
如果查询包含一些特殊函数(如CONNECTION_ID()),则无法缓存该查询。您可以将此功能添加到您的查询中:
SELECT *,CONNECTION_ID() FROM tbl_name