测试目的:对比先建索引与后建索引的效率
数据字段20个,类型包括int、float、text
条数3376892
索引数1,字段类型int
数据库文件总大小760M
数据条数 | 耗时s | 速度r/s |
0~50w | 90 | 5500 |
50w~100w | 304 | 1600 |
100w~150w | 460 | 1080 |
|
|
|
|
|
|
先建索引的情况:
写到150w时耗时已经>14分钟,假设后面的性能与100w~150w时的性能持平,
后面还有大约200w数据460*4=1840s=30分钟,总耗时>44分钟
后建索引的情况:
无索引写入3376892条,耗时139s,写入速度24294r/s
然后执行创建索引耗时406s
总耗时
545s
约
9
分钟
结论:在优化SQLite写入性能时,不仅考虑如何设计索引,还要考虑索引的创建时机