【发布时间】:2014-04-02 13:27:43
【问题描述】:
我有以下疑问:
SELECT * FROM messages GROUP BY peer
(实际上,连接更复杂,但为了简单起见,我在这里省略了它们)
问题是 SQLite 不使用任何索引并且总是对表执行完整扫描。不出所料,它在小型数据集上运行速度很快,但在包含数千行的大表上运行速度明显较慢。这是 EXPLAIN QUERY PLAN 命令的输出:0|0|0|SCAN TABLE messages USING INDEX messages_peer_mid (~1000000 rows)
尽管它说“使用索引”,但它仍然执行完整扫描。有什么方法可以让 SQLite 为这个查询使用索引,或者最好放弃 GROUP BY 并寻找其他方法?
【问题讨论】: