sqlite最佳化記錄:建立索引加快查詢速度

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   ar   java   for   資料   

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

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

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

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

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

下面是在android手機上面的測試代碼

查看原始碼 列印協助
01 //建立資料庫
02 SQLiteDatabase  database = SQLiteDatabase.openOrCreateDatabase(databaseFile,  "test123", null);
03 database.execSQL("create table if not exists t1(a,b)");
04 //建立索引
05 database.execSQL("create index if not exists ia on t1(a,b)");
06 //插入10w條資料
07 for (int i = 0; i < 100000; i++) {
08     database.execSQL("insert into t1(a, b) values(?, ?)",new String[] { "" + i, "name" + Math.random() * i });
09 }
10 //查詢一條資料
11 Log.v("test","開始查詢");
12             Cursor cursor = database.rawQuery("select * from t1 where a=‘88980‘", null);
13             while(cursor.moveToNext()){
14                 String a = cursor.getString(cursor.getColumnIndex("a"));
15                 String b = cursor.getString(cursor.getColumnIndex("b"));
16                 Log.v("test","尋找結果---------->" + "a: "+a+"  "+"b: "+b);
17             }
18             Log.v("test", "尋找結束");

本文地址http://tweetyf.org/2012/06/sqlite_optimization_using_index.html

 

sqlite最佳化記錄:建立索引加快查詢速度

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.