1

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

4

1 回答 1

2

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

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

于 2013-04-17T17:05:17.167 回答