問題
- 目前使用的是
sqlite3_step()
來執(zhí)行查詢動作,查詢的內(nèi)容為
SELECT DISTINCT date FROM filelist WHERE filepath LIKE '%%PIR%%';
實(shí)測sqlite3_step()
執(zhí)行效率比較低:
- 第一次執(zhí)行需要900ms左右却特;
- 后續(xù)每次執(zhí)行都比較耗時(shí)(執(zhí)行22次昌犹,總共耗時(shí)800ms左右稍算,快的在4ms趁俊,慢的在100+ms);
個(gè)人認(rèn)為以上兩種情況都有問題:第一次執(zhí)行慢的原因在哪里葫哗?當(dāng)查詢結(jié)果不止一條時(shí),沒一次step平均來看都需要30ms左右球涛?
線索
- 索引(針對查詢條件的列建立索引)可以極大的提高查詢速度劣针,甚至是數(shù)量級的。
參考資料
提升SQLite數(shù)據(jù)插入效率低亿扁、速度慢的方法
sqlite的幾個(gè)常用方法
C++操作SQLITE獲得查詢結(jié)果集的幾種方法總結(jié)
提升SQLITE插入捺典、查詢效率的方法