在對(duì)sqlite3 insert into 等操作時(shí)速度比較慢。
原因是因?yàn)樗且盐募男问酱嬖诖疟P(pán)中,每次訪問(wèn)時(shí)都要打開(kāi)一次文件,
如果對(duì)數(shù)據(jù)庫(kù)進(jìn)行大量的操作,那時(shí)很慢。
解決辦法用事務(wù)的形式提交:因?yàn)槲覀冮_(kāi)始事務(wù)后,進(jìn)行的大量操作的語(yǔ)句都保存在內(nèi)存中,當(dāng)提交時(shí)才全部寫(xiě)入數(shù)據(jù)庫(kù),此時(shí),數(shù)據(jù)庫(kù)文件也就只用打開(kāi)一次。
在進(jìn)行大量的操作前使用如下語(yǔ)句:
rc = sqlite3_exec(db, "begin;", 0,0, &szErrMsg);
for (...)
{
//insert into operate
}
rc = sqlite3_exec(db, "commit;", 0, 0,&szErrMsg);
這樣速度提高了近千倍。