让我们调用有问题的数据库db
,并让我们调用数百行x
的较小表格,以及行数超过1k行y
的较大表格。
当我向表格x
发出查询时,使用基本查询SELECT * FROM x LIMIT 25
在 0.0003 秒内发出查询时没有任何问题。
这适用于db
中所有较小的表,所有查询大约需要0.3毫秒才能处理。
但是,在向表SELECT * FROM y LIMIT 25
发出相同的基本查询y
后,该过程明显变慢。有时需要 100ms 来处理。
它会影响表y
的查询时间和表x
的查询时间。
在重新发布表格x
几次或列出db
中的另一个小表后,问题似乎消失了。来自另一个数据库的表格仍然很慢。
我已经阅读了很多关于可以提高查询速度的优化和性能增强功能。但是他们似乎都没有涉及这个问题。
答案 0 :(得分:1)
优化和性能以及表格大小不是问题;缓存是。
由于没有WHERE
,GROUP BY
或ORDER BY
,因此索引无关紧要。
LIMIT 25
,没有ORDER BY
,会占据前25行;在那之后有多少行并不重要。
如果"查询缓存"在on,然后第一次时间运行查询,它会更慢。在那之后(直到缓存出来),它将是"快速" - 0.3毫秒非常典型。
即使质量控制关闭,也有其他缓存可以解释差异。