众所周知,在数据库中使用索引和视图可以提高查询速度。但是使用不慎却可能引起BUG,这几天在工作中用到一些,特写下来留一个记号。
1.索引:CREATE INDEX indexname ON tablename(clumnname,<clumnname>);
在需要用到GROUP BY 或 ORDER BY 等的列上建立索引,可提高查询速度。
在SQLITE3 的数据库中必须存在一个列值,名为_ID,为一个自增列值,所以很多人会直接以此作为主键,但这会让主键的其它作用减弱,所以可以创建一个UNIQUE 索引,以此规范插入值不会重复。CREATE UNIQUE INDEX ……3
2.视图:CREATE VIEW V1 SELECT * FROM TABLENAME WHERE……
视图的作用这就不多说了,通常VIEW 创建之后不会保存,在关掉数据库之后就会被删除。所以VIEW的创建应该是在每次打开数据库之后。并且随着原表的改变VIEW会自动更新,所以不会每次使用视图时都去创建。
3.一些使用数据库的注意事项:
(1)、每次使用数据库后必须关闭数据库,使用OpenOrCreateDatabase()得到一个DB的使用,在直接使用数据库查询的时候,用完必须用DB.close()关闭数据库,而ANDROID中提供了数据库的封装操作contentprovider,若是用它,则不能关闭DB ,而在查询时的CURSOR 必须关闭,否则会出现GREF INCREATE TO 2001……类似的错误……
好了,就到这吧。安