sql - 为什么 SQLite 索引不能加速我的查询

标签 sql sqlite

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

相关文章:

c# - C#和WP8.1将查询选择的结果插入数组

ios - FMDB ios 没有这样的表

sqlite - 将未知大小的大块写入 SQLite

Jellybean 中的 Android SQLite 数据库事务/锁定更改

c++ - Qt: QSqlDatabase: QMYSQL 驱动程序未加载

mysql - 计算postgres/postgis中两个不相关表之间的重叠

mysql - 如何向 mysql 数据库表添加行并将其显示在 vb.net 的列表框中?

mysql - 在sql中,如何根据列中的约束来计算列中值的百分比?

MYSQL 当条件的第一部分有效时选择行(使用分组依据)

sql - 整数列是否包含值