考查SQLite 3索引对整数排序的性能影响
做个实验,想了解SQLite3索引对整数排序的性能影响。
用这个测试表,考查绿色那列:
| id | name | date |
|
自增型主键 |
字符串型,随机生成 |
整数型 随机生成,范围0到54354354 |
| 1 | bMzLiLzx2fBLUfBfFj29 | 43232244 |
| 2 | ofFzjPmQ5Pj82mHLm7yI | 18243324 |
| 3 | ... | ... |
分别测试以下两种情况:
- date列有索引
- 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。
浙公网安备 33010602011771号