例如:在数据库中插入100万个数据,如果只在
默认情况下
执行它,就可以了。
sqlite3_exec(dB,插入名称值的lxkxf ',' 24 ';0, 0,zerrmsg);
将重复
关闭数据库
文件100万次,因此
速度肯定会很慢,因此我们应该使用事务来
处理这种情况。
具体的
方法如下:在执行SQL语句和执行SQL语句之后,添加
RC = sqlite3_exec(DB,开始;
执行sql语句
RC = sqlite3_exec(DB,承诺;
在这种方式中,SQLite将首先减缓
内存中的所有SQL语句,然后
等待承诺写入数据库时,使数据库文件的打开和关闭,只有一次,而且效率大大提高。有一组数据对比:
测试1:1000插入
创建表T1(一个整数,整数B,C varchar(100));
插入T1值(113153,'thirteen万一百五十三);
插入T1值(275560,七十一五千五百六十);
省略995行…
插入T1值(99866289,'sixty六千二百八十九);
插入T1值(99924322,'twenty四千三百二十二);
插入T1值(100094142,'ninety四千一百四十二);
SQLite 2.7.6:
十三点零六一
SQLite 2.7.6(
同步NoSync):
零点二二三
测试2:使用事务25000插入
开始;
创建表T2(一个整数,整数B,C varchar(100));
插入的T2值(159672,'fifty九千六百七十二);
省略24997行…
插入的T2值(2499989569,'eighty九千五百六十九);
插入的T2值(2500094666,'ninety四千六百六十六);
承诺;
SQLite 2.7.6:
零点九一四
SQLite 2.7.6(同步NoSync):
零点七五七
可以看出,交易的使用大大提高了数据库的效率,但同时也要注意,使用交易也是一种代价,所以对于极少量的
操作不能使用,以免造成额外的消耗。