列出较大的表后缓慢的SQL查询

时间:2017-07-18 09:04:03

标签: mysql sql database performance innodb

让我们调用有问题的数据库db,并让我们调用数百行x的较小表格,以及行数超过1k行y的较大表格。

当我向表格x发出查询时,使用基本查询SELECT * FROM x LIMIT 25 0.0003 秒内发出查询时没有任何问题。

enter image description here

这适用于db中所有较小的表,所有查询大约需要0.3毫秒才能处理。

但是,在向表SELECT * FROM y LIMIT 25发出相同的基本查询y后,该过程明显变慢。有时需要 100ms 来处理。

Snip

它会影响表y 的查询时间和x的查询时间。

Snip

在重新发布表格x几次或列出db中的另一个小表后,问题似乎消失了。来自另一个数据库的表格仍然很慢。

我已经阅读了很多关于可以提高查询速度的优化和性能增强功能。但是他们似乎都没有涉及这个问题。

1 个答案:

答案 0 :(得分:1)

优化和性能以及表格大小不是问题;缓存是。

  • 由于没有WHEREGROUP BYORDER BY,因此索引无关紧要。

  • LIMIT 25,没有ORDER BY,会占据前25行;在那之后有多少行并不重要。

  • 如果"查询缓存"在on,然后第一次时间运行查询,它会更慢。在那之后(直到缓存出来),它将是"快速" - 0.3毫秒非常典型。

  • 即使质量控制关闭,也有其他缓存可以解释差异。