我有 2 个表:
tblValidItems - | - tblItems
validID itemID
------- ------
3 1
5 2
6 3
... 4
~ 8 K items 5
.....
~ 20 K items
我的查询是在 tblItems
中选择某些也在 tblValidItems
中的东西:
SELECT tblItems.itemID FROM tblItems
JOIN tblValidItems ON tblItems.itemID = tblValidItems.validID
我尝试在两个表上使用和不使用索引进行查询,但结果差异不大:
- 两个表都有索引 - 127 毫秒
- 两个表都没有索引 - 132 毫秒
这让我很吃惊,因为我认为索引会极大地影响查询的速度。为什么不呢?
最佳答案
我猜测查询主要是返回 8,000 个值的时间,而不是查找行的时间。
当您减少所处理数据的大小时,索引最有用。从 20k 行减少到 8k 并不是特别显着。
关于sql - 为什么 SQLite 索引不能加速我的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16736520/