如何测试查询的实际执行时间?

时间:2013-11-14 23:06:15

标签: mysql performance mysql-slow-query-log

我在Mysql慢查询日志中得到一个慢查询。 Mysql慢查询日志显示查询需要超过4秒才能执行。

我在phpmyadmin中运行此查询,需要3秒钟。当我再次运行它时,它只需要0.0002秒。我猜有一个DB Cache或者什么。当我第二次运行时,它的执行时间可能不准确。

对于这种情况(执行时间很快),如何测试查询的实际执行时间?

3 个答案:

答案 0 :(得分:2)

仅出于测试目的,您可以使用SQL_NO_CACHE

SELECT SQL_NO_CACHE * FROM `table` .....

另外,您可以将query_cache_type设置为0以用于当前会话

SET SESSION query_cache_type=0;

SQL_NO_CACHE

Query Cache Configuration

答案 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

How the Query Cache Operates