【问题标题】:Optimizing Queries on MYSQL (InnoDB tables)优化 MYSQL 查询(InnoDB 表)
【发布时间】:2013-06-02 08:33:29
【问题描述】:

我遇到了问题。我需要(出于教学目的)显示查询的优化过程(例如:2 秒没有任何索引,1 秒有索引......等等)。

我有一个 mysql 数据库,有 12 个表,每个表中有 1.000.000 条记录。

问题是:如果我第一次执行查询,需要 x 秒。同一查询的第二次执行总是需要 0 秒。我尝试刷新表,刷新查询缓存,在选择中将查询缓存设置为 OFF,将 inno_db_buffer_pool 设置为 0M .. 什么都没有。在第一次执行查询后,MYSQL 将结果缓存在某处(我认为),因此下一次执行总是需要 0 秒。

【问题讨论】:

    标签: mysql caching optimization innodb


    【解决方案1】:

    如果您需要优化查询,请在您的 SELECT 语句中使用 SQL_NO_CACHE

    【讨论】:

    • 我做到了,同一个查询的第二次执行需要 0.0 秒,即使在 SELECT 语句之后使用 SQL_NO_CACHE 也是如此
    【解决方案2】:

    您应该在第一次运行查询时使用 SQL_NO_CACHE 来告诉 MySQL 不要将结果放入缓存中。仅在执行某些查询后应用 SQL_NO_CACHE 是没有意义的。重置您的服务器并执行所有带有 SQL_NO_CACHE 前缀的查询。

    【讨论】:

      猜你喜欢
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多