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 "-" "-" 脚本如下: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |