sqlite優化記錄 建立索引加快查詢速度

2021-09-06 18:37:18 字數 1591 閱讀 4152

凡是資料庫中,索引的存在就是為了提高查詢速度的,資料庫的索引有點類似於書本上面的目錄的概念,因為在英文中都是index,事實上也就是目錄。

其演算法應該叫做「倒排索引」,這個其實也類似於搜尋引擎裡面的基本演算法。

測試:10w條資料,沒有索引的情況下,查詢一條資料大約需要550ms以上。

建立索引後,資料庫的體積增大了3倍左右,但是同樣的查詢卻減少到8ms的級別,提公升了70倍

有時候關於sqlite資料庫出錯或者沒法用的情況看這裡

下面是在android手機上面的測試**

檢視源**

列印幫助

01//建立資料庫

02sqlitedatabase  database = sqlitedatabase.openorcreatedatabase(databasefile,"test123",null);

03database.execsql("create table if not exists t1(a,b)");

04//建立索引

05database.execsql("create index if not exists ia on t1(a,b)");

06//插入10w條資料

07for(inti =0; i <100000; i++) );

09}

10//查詢一條資料

11log.v("test","開始查詢");

12cursor cursor = database.rawquery("select * from t1 where a='88980'",null);

13while(cursor.movetonext())

18log.v("test","查詢結束");

Sqlite的索引優化

一直比較喜歡文字型資料庫,簡單 方便,容易儲存。最近將乙個 的mysql 資料庫轉換成了 2.5g 的 sqlite資料庫。悲劇發生了,非常慢,經常超出30秒的執行時間,所以一直用快取扛著,10.1 假期正好有空,決定徹底解決下這個慢的問題。首先是首頁慢,認真的分析了首頁呼叫的函式,發現卡死經常在乙...

記錄 建立索引

建立索引 create clustered index riqi person on person date 在person表的date欄位上面建立名為riqi person的 聚集索引 create nonclustered index riqi person on person date 在pe...

Mysql expain 及優化記錄(索引)

某次優化記錄 操作記錄 operation alarm 2000萬條資料 create table operation alarm id bigint 11 not null auto increment,shop id bigint 20 not null,shop name varchar 50...