Android 中 SQLite 效能優化

2021-07-14 14:59:13 字數 1371 閱讀 9707

sqlite效能的優化,在此記錄。(乙個比較全面的sqlite資料庫講解)

具體用法看上面的部落格。

優點:加快了查操作

缺點:降低了增刪改操作的速度,增加了空間消耗,建立索引過程耗時。

基於以上特點,具體情況判斷是否建立索引。

sqlite想要執行操作,需要將程式中的sql語句編譯成對應的sqlitestatement,比如select * from record這一句,被執行100次就需要編譯100次。對於批量處理插入或者更新的操作,我們可以使用顯式編譯來做到重用sqlitestatement。

private

void insertwithprecompiledstatement(sqlitedatabase db)

}

在android中,無論是使用sqlitedatabase的insert,delete等方法還是execsql都開啟了事務,來確保每一次操作都具有原子性,使得結果要麼是操作之後的正確結果,要麼是操作之前的結果。

然而事務的實現是依賴於名為rollback journal檔案,借助這個臨時檔案來完成原子操作和回滾功能。既然屬於檔案,就符合unix的檔案范型(open-read/write-close),因而對於批量的修改操作會出現反覆開啟檔案讀寫再關閉的操作。然而好在,我們可以顯式使用事務,將批量的資料庫更新帶來的journal檔案開啟關閉降低到1次。、

private

void

insertwithtransaction(sqlitedatabase db)

db.settransactionsuccessful();

} catch (exception e) finally

}

查詢優化的幾點小細節:

1.按需獲取資料

2.提前獲取列索引

private

void

goodquerywithloop(sqlitedatabase db) , null, null, null, null, null) ;

int inserttimecolumnindex = cursor.getcolumnindex(tabledefine.column_insert_time);//先獲得索引

while (cursor.movetonext())

cursor.close();

}

3.contentvalues的容量調整

contentvalues的初始容量是8,如果當新增的資料超過8之前,則會進行雙倍擴容操作,因此建議對contentvalues填入的內容進行估量,設定合理的初始化容量,減少不必要的內部擴容操作。

Android中SQLite操作示例

android中sqlite操作示例 在android中對sqlite資料庫的操作,涉及以下幾個方面 1 確認資料庫檔案,即.db檔案 2 通過android.database.sqlite.sqlitedatabase類的openorcreatedatabase 方法開啟資料庫 3 資料庫操作 a...

Android中SQLite版本公升級

size large android中sqlite版本公升級 網上有很多文章,但是感覺寫的都不是很明白 前提 定義dbopenhelper類繼承sqliteopenhelper 重寫oncreate和onupgrade方法 ondowngrade是降級的方法,應該不會用到 定義兩個屬性 資料庫名稱,...

Android中對SQLite的操作

1.總論 通常自定義類,並繼承自sqliteopenhelper,在預設的建構函式中,會呼叫父類的建構函式。只需將資料庫名傳入即可。super context,database name,null,database version 2.建立表 首先,獲取乙個可寫的資料庫物件 database thi...