我有以下查詢:
使用索引GROUP BY
SELECT * FROM messages GROUP BY peer
(說實在的,與加入更復雜,但我忽略他們在這裏爲簡便起見)
的問題是,SQLite不使用任何索引並始終執行表的全面掃描。預計,它可以在小型數據集上快速運行,但在包含成千上萬行的大型表中速度很慢。以下是EXPLAIN QUERY PLAN命令的輸出結果:
0|0|0|SCAN TABLE messages USING INDEX messages_peer_mid (~1000000 rows)
儘管它顯示「USING INDEX」,它仍會執行全面掃描。有什麼辦法讓SQLite使用這個查詢的索引,或者放棄GROUP BY並尋找其他方法更好?
我想他說他的查詢只是爲了簡單起見而寫的。 – DNac
我只能評論我所知道的..對於所有我知道他的實際查詢沒有where子句或仍然(顯然)需要掃描 –
同意這一個。 – DNac