前言
sqlite資料庫由於其簡單、靈活、輕量、開源,已經被越來越多的被應用到中小型應用中。甚至有人說,sqlite完全可以用來取代c語言中的檔案讀寫操作。因此我最近編寫有關遙感資料處理的程式的時候,也將sqlite引入進來,以提高資料的結構化程度,並且提高大資料的處理能力(sqlite最高支援2pb大小的資料)。但是最開始,我發現,直接使用sql語句的插入效率簡直低的令人髮指的。後來不斷查文件、查資料,才發現了一條快速的「資料插入」之路。本文就以插入資料為例,整合網上和資料書中的各種提高sqlite效率的方法,給出提高sqlite資料插入效率的完整方法。(大神們勿噴)
1 資料
我使用的電腦是win7 64位系統,使用vc2010編譯,sqlite版本為3.7.15.2 ,電腦cpu為二代i3處理器,記憶體6g。
實驗之前,先建立要插入資料的表:
[sql] view plaincopy
create table t1 (id integer , x integer , y integer, weight real)
2 慢速——最粗暴的方法
sqlite的api中直接執行sql的函式是:
[cpp] view plaincopy
int sqlite3_exec( sqlite3*, const char *sql, int (*callback)(void*,int,char**,char**), void *, char **errmsg)
直接使用insert語句的字串進行插入,程式部分**(完整**見後文),如下:
[cpp] view plaincopy
for(int i=0;i
#include
#include
#include
#include "sqlite3.h"
const int ncount = 500000;
int main (int argc,char** argv)
sqlite3_finalize(stmt);
sqlite3_exec(db,"commit;",0,0,0);
clock_t t2 = clock();
sqlite3_close(db);
std::cout<<"cost tima: "<<(t2-t1)/1000.<<"s" } sqlite插入效率對比 建表 create table if not existstttable id integer primary key autoincrement,name varchar 100 筆者電腦配置 硬碟是250g三星ssd硬碟 cpu os 記憶體如下 理論 sqlite 插... 常規連線sqlite字串為 data source db.db version 3 用上述字串連線sqlite,然後用 system.data.sqlite 訪問資料庫時發現有下述幾個問題 往表中插入一條資料時大約耗時100ms 無論表中資料是否很多 這在插入大量資料時會等待很長時間 多執行緒訪問資... 今年3月份我順利通過了 pmp 考試,接著參加了5月的軟考,報考的是資訊系統專案管理師 高階 也順利通過。半年時間,同時通過這兩個考試,確實不易。之前我乙個同事單軟考那個就考了三回,歷時兩年。公司領導和同事對此都很吃驚,紛紛問我是怎麼做到的?平時我工作也很努力,空閒時間不多,怎麼半年時間就完成了很多...sqlite插入資料效率提公升解決方案
sqlite效能提公升
怎樣提公升效率