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

腳本如下:

 

 

發佈了44 篇原創文章 · 獲贊 3 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章