【问题标题】:Why does the first execution of a mysql query with no query cache takes longer time than later executions?为什么第一次执行没有查询缓存的 mysql 查询比以后执行需要更长的时间?
【发布时间】:2013-04-17 16:57:15
【问题描述】:

我正在尝试优化SELECT SQL_NO_CACHE col FROM TABLE .. 形式的查询。当我第一次连接到数据库并执行查询时,大约需要 9 秒。当我第二次执行查询时,几乎需要 0.1 秒。我将SQL_NO_CACHE 放在查询中以确保mysql 没有从缓存中读取结果。我的问题是为什么在连接到数据库(mysql -uroot ...)之后第一次执行查询比后续执行花费的时间要长得多。查询的实际执行时间是多少?

【问题讨论】:

    标签: mysql database


    【解决方案1】:

    MySQL 可能需要一段时间来预热其内部缓存。请记住,SQL_NO_CACHE 表示仅避免查询缓存。从性能的角度来看,索引缓存是最重要的。如果索引没有被读取,那么在第一次使用时会有很大的惩罚。

    如果您应该使用 InnoDB,请确保您的缓冲池足够大。大多数服务器应该分配至少几 GB 的内存。

    【讨论】:

    • 那么第一次执行时间并不能反映它的实际时间?
    • 和任何东西一样,第一次执行的时间通常比较慢。
    猜你喜欢
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多