SQLITE速度評測

2021-05-05 15:32:48 字數 1279 閱讀 8974

sqlite 作為乙個輕量級嵌入式資料庫,還是非常好用的。雨痕極力推薦~~~~~~ 

今天有個朋友測試 sqlite,然後得出的結論是:sqlite 效率太低,批量插入1000條記錄,居然耗時 2 分鐘!

下面是他發給我的測試**。我暈~~~~~~ 

using system.data;

using system.data.common;

using system.data.sqlite;

// 建立資料庫檔案

file.delete("test1.db3");

sqliteconnection.createfile("test1.db3");

dbprovide***ctory factory = sqlitefactory.instance;

using (dbconnection conn = factory.createconnection())

// 停止計時

watch.stop();

console.writeline(watch.elapsed); }

哎~~~~ 乙個常識性的錯誤,我加幾行** (新增**標記 "// <-------------------")。

using system.data;

using system.data.common;

using system.data.sqlite;

// 建立資料庫檔案

file.delete("test1.db3");

sqliteconnection.createfile("test1.db3");

dbprovide***ctory factory = sqlitefactory.instance;

using (dbconnection conn = factory.createconnection())

trans.commit(); // <------------------- }

catch

// 停止計時

watch.stop();

console.writeline(watch.elapsed); }

執行一下,耗時 0.2 秒。這差距是不是太大了點? 

為什麼只是簡單啟用了乙個事務會有這麼大的差距呢?很簡單,sqlite 預設為每個操作啟動乙個事務,那麼原** 1000 次插入起碼開啟了 1000 個事務,"事務開啟 + sql 執行 + 事務關閉" 自然耗費了大量的時間,這也是後面顯示啟動事務後為什麼如此快的原因。其實這是資料庫操作的基本常識,大家要緊記,不好的**效率差的不是一點半點。

BerkeleyDB與SQLite評測對比

引自http blog.csdn.net mynicedream archive 2008 04 04 2252398.aspx 最近要做乙個專案,需要用到實時資料庫,pi太貴了,想找乙個免費的,實在不行就只能自己編了。找了半天,找到了fastdb berkeleydb和sqlite.fastdb是...

Qt中提高sqlite的讀寫速度

sqlite資料庫本質上來講就是乙個磁碟上的檔案,所以一切的資料庫操作其實都會轉化為對檔案的操作,而頻繁的檔案操作將會是乙個很好時的過程,會極大地影響資料庫訪問的速度。例如 向資料庫中插入100萬條資料,在預設的情況下如果僅僅是執行query.exec insert into database va...

Qt中提高SQLite的讀寫速度

sqlite資料庫本質上來講就是乙個磁碟上的檔案,所以一切的資料庫操作其實都會轉化為對檔案的操作,而頻繁的檔案操作將會是乙個很耗時的過程,會極大地影響資料庫訪問的速度。例如 向資料庫中插入100萬條資料,在預設的情況下如果僅僅是執行query.exec insert into database va...