主頁 > 知識庫 > SQLite優(yōu)化方法

SQLite優(yōu)化方法

熱門標(biāo)簽:奧維地圖標(biāo)注字體大小修改 江西穩(wěn)定外呼系統(tǒng)供應(yīng)商 中國地圖標(biāo)注省份用什么符號 高德地圖標(biāo)注電話怎么沒了 智能電銷機(jī)器人教育 北京智能外呼系統(tǒng)供應(yīng)商家 孝感銷售電銷機(jī)器人廠家 無錫梁溪公司怎樣申請400電話 電話機(jī)器人錄音師薪資
例如:向數(shù)據(jù)庫中插入100萬條數(shù)據(jù),在默認(rèn)的情況下如果僅僅是執(zhí)行

sqlite3_exec(db, “insert into name values ‘lxkxf', ‘24'; ”, 0, 0, zErrMsg);

將會重復(fù)的打開關(guān)閉數(shù)據(jù)庫文件100萬次,所以速度當(dāng)然會很慢。因此對于這種情況我們應(yīng)該使用“事務(wù)”。

具體方法如下:在執(zhí)行SQL語句之前和SQL語句執(zhí)行完畢之后加上

rc = sqlite3_exec(db, "BEGIN;", 0, 0, zErrMsg);

//執(zhí)行SQL語句

rc = sqlite3_exec(db, "COMMIT;", 0, 0, zErrMsg);



這樣SQLite將把全部要執(zhí)行的SQL語句先緩存在內(nèi)存當(dāng)中,然后等到COMMIT的時(shí)候一次性的寫入數(shù)據(jù)庫,這樣數(shù)據(jù)庫文件只被打開關(guān)閉了一次,效率自然大大的提高。有一組數(shù)據(jù)對比:



測試1: 1000 INSERTs

CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100));
INSERT INTO t1 VALUES(1,13153,'thirteen thousand one hundred fifty three');
INSERT INTO t1 VALUES(2,75560,'seventy five thousand five hundred sixty');
... 995 lines omitted
INSERT INTO t1 VALUES(998,66289,'sixty six thousand two hundred eighty nine');
INSERT INTO t1 VALUES(999,24322,'twenty four thousand three hundred twenty two');
INSERT INTO t1 VALUES(1000,94142,'ninety four thousand one hundred forty two');

SQLite 2.7.6:
13.061

SQLite 2.7.6 (nosync):
0.223




測試2: 使用事務(wù) 25000 INSERTs

BEGIN;
CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100));
INSERT INTO t2 VALUES(1,59672,'fifty nine thousand six hundred seventy two');
... 24997 lines omitted
INSERT INTO t2 VALUES(24999,89569,'eighty nine thousand five hundred sixty nine');
INSERT INTO t2 VALUES(25000,94666,'ninety four thousand six hundred sixty six');
COMMIT;

SQLite 2.7.6:
0.914

SQLite 2.7.6 (nosync):
0.757




可見使用了事務(wù)之后卻是極大的提高了數(shù)據(jù)庫的效率。但是我們也要注意,使用事務(wù)也是有一定的開銷的,所以對于數(shù)據(jù)量很小的操作可以不必使用,以免造成而外的消耗。
您可能感興趣的文章:
  • Android開發(fā)之SQLite的使用方法
  • SQLite 中文指南之FAQ
  • SQLite中的B-Tree實(shí)現(xiàn)細(xì)節(jié)分析
  • sqlite中文亂碼問題原因分析及解決
  • SQLite3中的日期時(shí)間函數(shù)使用小結(jié)
  • sqlite3 top的查詢及l(fā)imit語法介紹
  • Sqlite 常用函數(shù) 推薦
  • SQLite 錯(cuò)誤碼整理
  • sQlite常用語句以及sQlite developer的使用與注冊

標(biāo)簽:泰州 臨滄 通化 荊州 那曲 海北 阜陽 齊齊哈爾

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQLite優(yōu)化方法》,本文關(guān)鍵詞  SQLite,優(yōu)化,方法,SQLite,優(yōu)化,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQLite優(yōu)化方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQLite優(yōu)化方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章