SQLite优化
目录
插入效率优化
显式开启事务
- 所谓”事务“就是指一组SQL命令,这些命令要么一起执行,要么都不被执行。在SQLite中,每调用一次sqlite3_exec()函数,就会隐式地开启了一个事务,如果插入一条数据,就调用该函数一次,事务就会被反复地开启、关闭,会增大IO量。如果在插入数据前显式开启事务,插入后再一起提交,则会大大提高IO效率,进而加快数据插入速度。示例代码如下:
sqlite3_exec(db,"BEGIN",0,0,0);
for(int i=0;i<nCount;++i)
{
std::stringstream ssm;
ssm<<"insert into t1 values("<<i<<","<<i*2<<","<<i/2<<","<<i*i<<")";
sqlite3_exec(db,ssm.str