我只是想知道是否有什么办法可以让查询运行得更快一点?
我有这个查询:
SELECT * FROM posts
WHERE posts.exists = 'n'
ORDER BY posts.ratecount DESC
LIMIT 0,100
耗时:2.47s @ 0,100 | 6.18s @ 500,100
这可行,但随着限制的增加(100,100 > 200,100 等),它往往会变得相当缓慢。
使用索引似乎也无济于事:
SELECT * FROM posts
USE INDEX(ratecount_ca)
WHERE posts.exists = 'n'
ORDER BY posts.ratecount DESC
LIMIT 0,100
耗时:8.59s @ 0,100 | 28.98s @ 500,100
奇怪的是,没有 WHERE 它可以完美运行。
降序索引很可能会解决这个问题,但由于这似乎还没有实现,我需要另一种选择。在订购后执行 WHERE 很可能也会加快速度,但由于我对 SQL 比较陌生,所以我不知道该怎么做:<