考查SQLite 3索引对整数排序的性能影响

时间:2022-11-01 04:43:38

做个实验,想了解SQLite3索引对整数排序的性能影响。

 

用这个测试表,考查绿色那列:

id name date

自增型主键

字符串型,随机生成

整数型

随机生成,范围0到54354354

1 bMzLiLzx2fBLUfBfFj29 43232244
2 ofFzjPmQ5Pj82mHLm7yI 18243324
3 ... ...

 

分别测试以下两种情况:

  1. date列有索引
  2. date列无索引

各插入100万条随机数据,然后执行10次这条SQL查询语句:

1 SELECT * FROM test_tbl
2 WHERE date BETWEEN 20000000 AND 30000000
3 ORDER BY date DESC;

 

结果:

  date有索引 date无索引
插入100万数据的时间 22.35秒 20.77秒
查询10次的时间 0.0001442秒 1.5538秒

去掉第3行SQL语句,

查询10次的时间

0.0001146秒 0.0001451秒

 

可见,索引对 ORDER BY date DESC 子句的性能有较大影响,如果没有这个子句则区别不大。

 

测试于SQLite 3.8.11,64位,Windows 10。