Sqlite 插入数据慢解决方法

来源:互联网 发布:中国海关出口数据 编辑:程序博客网 时间:2024/04/29 17:04

sqlite 插入数据很慢的原因是因为它是已文件的形式存在磁盘中,每次访问时都要打开一次文件,如果对数据进行大量的操作,那时很慢。

 

解决方法是用事务的形式提交:因为我们开始事务后,进行的大量操作的语句都保存在内存中,当提交时才全部写入数据库,此时,数据库文件也就只用打开一次。

 

我在没有用事务形式插入4366条数据时用了507.781s,平均每一插入一条数据是116ms,用事务形式,插入只用了391ms,相关很大吧。

 

事务方式:

 

 

顺带一点在sqlite里的单引号转义不是用反斜杠'/'而是用单引号,就是在单引号前再加一个单引号('').

 

下面是写的一个统计apache的脚本,apache日志按日期分目录,在日期目录下按每小时分文件,日志数据源:

124.115.0.27 - - [25/02/2011:23:00:01] "GET /images/css.css HTTP/1.1" 200 3487 "http://www.XXXX.com/index.php?categoryid=175" "Sosospider+(+http://help.soso.com/webspider.htm)"

221.130.177.108 - - [25/02/2011:22:59:53] "GET /index.php?newsid=2010122810463740 HTTP/1.1" 200 5079 "-" "-"

脚本如下: