繁体   English   中英

为什么SQLite索引不会加快我的查询速度

[英]Why does an SQLite index not speed up my query

我有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

我在两个表上都尝试了带有和没有索引的查询,但结果变化很小:

  • 两个表上都有索引 - 127ms
  • 两个表都没有索引 - 132ms

这让我感到惊讶,因为我认为索引会显着影响此查询的速度。 为什么不呢?

我猜测查询主要是返回8,000个值而不是查找行的时间。

当您减小正在使用的数据的大小时,索引最有用。 从20k行减少到8k并不是特别重要。

默认情况下会为Sqlite主键编制索引。 无论如何,您正在加入索引的主键。

每当您对sqlite如何处理查询有疑问时,请使用EXPLAIN QUERY PLAN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM