慢 SQL 列出较大后的查询 table

Slow SQL Queries after listing larger table

让我们调用有问题的数据库 db,也让我们调用具有几百行 x 的较小的 table 和超过 10k 行的较大的 y


当我向 table x 发出查询时,使用基本查询 [=16] 在大约 0.0003 秒内发出查询没有任何问题=].

这适用于 db 中所有较小的 tables,所有查询的处理时间约为 0.3 毫秒。

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


它影响 table y 的查询时间和 table x.[=27 的查询时间=]


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

我阅读了很多有关可以提高查询速度的优化和性能增强的内容。 None 他们似乎涵盖了这个问题。

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

  • 因为没有WHEREGROUP BY,也没有ORDER BY,索引无所谓。

  • LIMIT 25,没有ORDER BY,会抓取前25行;之后有多少行并不重要。

  • 如果"Query cache"在on,那么第一次你运行一次查询,会比较慢。之后(直到超出缓存),它将是 "fast" —— 0.3ms 是非常典型的。

  • 即使 QC 关闭,也有其他缓存可以解释差异。