您的位置:首页 > 数据库

sqlite优化记录:建立索引加快查询速度

2014-10-10 11:26 225 查看
凡是数据库中,索引的存在就是为了提高查询速度的,数据库的索引有点类似于书本上面的目录的概念,因为在英文中都是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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: