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