【发布时间】:2010-06-12 21:17:04
【问题描述】:
我正在运行一个连接超过 500,000 行的各种表的 mySQL 查询。有时需要一秒钟,有时大约需要 15 秒!这是在我的本地机器上。我之前在其他密集查询中也经历过类似的不同时间,有人知道这是为什么吗?
谢谢
感谢您的回复 - 我正在使用适当的索引、内连接和左连接,并且在可能的 2 年发票期间内,WHERE 子句范围为一周。如果我不断改变它(所以大概查询结果没有被缓存)并重新运行,时间变化很大,即使没有。检索到的行数相似。服务器不忙。每分钟有几个预定的查询,但不密集,大约需要 200 毫秒。
解释计划显示,大约 2000 行的表始终被完全扫描。所以也许这些行有时会被缓存,或者索引可能被缓存 - 不知道索引可以被缓存。我将在关闭缓存的情况下重试。
再次编辑 - 查询缓存实际上已关闭,我正在使用 InnoDB,所以看起来增加 innodb_buffer_pool_size 是可行的方法
【问题讨论】:
-
问题不够具体,无法提供有用的答案,请重构 :)
标签: mysql performance