【发布时间】:2017-07-18 09:04:03
【问题描述】:
让我们调用有问题的数据库db,我们还调用具有几百行的较小表x,以及具有超过10k 行的较大表y。
当我向表 x 发出查询时,使用基本查询 SELECT * FROM x LIMIT 25 在大约 0.0003 秒内发出查询没有任何问题。
这适用于db 中所有较小的表,所有查询的处理时间约为 0.3 毫秒。
但是,在向表 y 发出相同的基本查询 SELECT * FROM y LIMIT 25 后,该过程明显变慢。有时需要 100ms 来处理。
它影响表y的查询时间和表x的查询时间。
在重新发布表x 列表几次或在db 中列出另一个小表后,问题似乎消失了。来自另一个数据库的表仍然很慢。
我已经阅读了很多关于可以提高查询速度的优化和性能增强的文章。然而,他们似乎都没有涵盖这个问题。
【问题讨论】:
-
Bot表字段是否相同?他们有FK吗?您能否给我们描述一下它们,也许我们可以以更好的方式帮助您。
-
我认为你应该考虑缓存
-
@VíctorLópez 表格的结构似乎并不重要。我在另一个数据库中有另一个大表,列数较少,但问题仍然存在。而且他们不受 FK 限制
-
@RiggsFolly 我有两个表的 PK 索引
-
我希望你没有多余的
INDEX(pk)。请记住,PRIMARY KEY(pk)既是UNIQUE又是INDEX。
标签: mysql sql database performance innodb