我只是想知道如果我能做些什麼來使查詢運行得更快一些?如何使此查詢運行得更快?
我有這個疑問:
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可能會加速它,但是由於我對SQL比較陌生,所以我不知道該怎麼做:<
這工作完美。謝謝! :D – 2012-04-13 11:24:56
你可以發佈多少性能改進?只是爲了我的好奇:) – 2012-04-13 11:33:09
從8.59s> 0.93s出發。相當肯定它可以降低,但這適用於我所需要的。 :3 公平地確定這是因爲即使選項存在,實際上也無法更改索引順序: 「index_col_name規範可以以ASC或DESC結尾,這些關鍵字可用於指定升序或降序索引值的將來擴展存儲。目前,它們被解析但被忽略;索引值總是以升序存儲「 – 2012-04-13 11:52:19