问题
- 目前使用的是
sqlite3_step()
来执行查询动作,查询的内容为
SELECT DISTINCT date FROM filelist WHERE filepath LIKE '%%PIR%%';
实测sqlite3_step()
执行效率比较低:
- 第一次执行需要900ms左右;
- 后续每次执行都比较耗时(执行22次,总共耗时800ms左右,快的在4ms,慢的在100+ms);
个人认为以上两种情况都有问题:第一次执行慢的原因在哪里?当查询结果不止一条时,没一次step平均来看都需要30ms左右?
线索
- 索引(针对查询条件的列建立索引)可以极大的提高查询速度,甚至是数量级的。
参考资料
提升SQLite数据插入效率低、速度慢的方法
sqlite的几个常用方法
C++操作SQLITE获得查询结果集的几种方法总结
提升SQLITE插入、查询效率的方法
网友评论