今天使用sqlite做插入数据,测试所耗时间。发现批量插入1000条数据居然用了5077毫秒,这个效率简直无法接收。仔细分析,不难发现,一定是每插入一条记录就更新一次数据库文件,频繁的文件操作导致效率问题。通过查看sqlite手册,发现我的猜测是正确的。原来,sqlite默认情况下每执行一条语句就是一个事务,因此,上面的操作,每插入一条记录,就会操作一次数据文件。所以我们需要显示的进行事务处理:
"BEGIN"
for( ){//插入数据};
"COMMIT"
这样执行完这个事务后才会更新数据库,测试:插入1000条数据耗时125毫秒。