【问题标题】:How do I test the real execution time of a query?如何测试查询的实际执行时间?
【发布时间】:2023-04-10 01:08:01
【问题描述】:

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

我在 phpmyadmin 中运行此查询,需要 3 秒。当我再次运行它时,只需要 0.0002 秒。我想有一个数据库缓存或其他东西。当我第二次运行它时,它的执行时间可能不准确。

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

【问题讨论】:

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


【解决方案1】:

仅用于测试目的,您可以使用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

【讨论】:

    【解决方案2】:

    如果您正在谈论防止 MySQL 缓存结果,您可以使用 SQL_NO_CACHE 关键字。 (例如:SELECT SQL_NO_CACHE * FROM table1

    【讨论】:

      【解决方案3】:

      您可以在第二次执行之前稍微修改您的查询。

      所以下面两个查询被查询缓存认为是不同的:

      SELECT * FROM tbl_name
      Select * from tbl_name
      

      如果查询包含一些特殊函数,如 CONNECTION_ID(),则无法缓存该查询。您可以将此函数添加到您的查询中:

      SELECT *,CONNECTION_ID() FROM tbl_name
      

      How the Query Cache Operates

      【讨论】:

        猜你喜欢
        • 2012-07-01
        • 1970-01-01
        • 2017-06-04
        • 2018-09-20
        • 1970-01-01
        • 1970-01-01
        • 2013-09-01
        • 1970-01-01
        相关资源
        最近更新 更多