Sqlite 插入数据慢解决方法

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 "-" "-"

脚本如下:

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值