最近做了乙個專案,在系統啟動時會更新幾千條資料,剛開始就使用最簡單的寫法,直接的insert,delete,導致這個更新過程進行了300多秒,後來經查得知在處理大量資料的時候新增上事務管理,會大大的提高效能,隨後就查閱資料如何來新增事務管理。
這ios的sqlite和android上面的語法真是相差很多啊,剛開始真不知道怎麼寫,索性就直接經
sqlite3_exec(_sqlite, [@"begin;" cstringusingencoding:nsutf8stringencoding], 0, 0, 0);
sqlite3_exec(_sqlite, [@"commit;" cstringusingencoding:nsutf8stringencoding], 0, 0, 0);
sqlite3_exec(_sqlite, [@"rollback;" cstringusingencoding:nsutf8stringencoding], 0, 0, 0);
這三句話新增到相應的位置,這就是sqlite的事務管理了,是不是感覺和android的相差很大,
就這樣直接執行,效能這的提高了真的得到了大大的提高,變成了不到3秒,太爽了!
sqlite 效能優化
比如 空間釋放 磁碟同步 cache大小等。不要開啟。前文提高了,vacuum的效率非常低!pragma auto vacuum pragma auto vacuum 0 1 查詢或設定資料庫的auto vacuum標記。正常情況下,當提交乙個從資料庫中刪除資料的事務時,資料庫檔案不改變大小。未使用...
sqlite效能優化1
建立索引的基本語法如下 create index index name on table name column name,間接索引 定義主鍵約束或者唯一性約束,可以間接建立索引,主鍵預設為唯一約束.所 有不需要再建立索引,以免造成浪費.注意事項 1.建立索引會增加資料庫的大小.2.對於insert...
SQLite3效能優化
sqlite3效能調整主要通過pragma指令來實現。比如調整 空間釋放 磁碟同步 cache大小等。一.空間釋放 1.如何查詢 pragma auto vacuum 含義 查詢資料庫的auto vacuum標記。2.標記含義 auto vacuum標記的含義 正常情況下,當提交乙個從資料庫中刪除資...