sqlite性能优化借鉴

前端之家收集整理的这篇文章主要介绍了sqlite性能优化借鉴前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_0@ 本文为性能优化的第一篇——数据库性能优化,原理适用于大部分数据库包括sqlite、MysqL、Oracle、sql server,详细介绍了索引(优缺点、分类、场景、规则)和事务,最后介绍了部分单独针对sqlite的优化

性能优化专题已完成五部分:

性能优化总纲——性能问题及性能调优方式
性能优化第三篇——Java(Android)代码优化
性能优化第二篇——布局优化
性能优化第一篇——数据库性能优化

性能优化实例
1、索引
简单的说,索引就像书本的目录,目录可以快速找到所在页数,数据库中索引可以帮助快速找到数据,而不用全表扫描,合适的索引可以大大提高数据库查询的效率。
(1). 优点
大大加快了数据库检索的速度,包括对单表查询、连表查询、分组查询、排序查询。经常是一到两个数量级的性能提升,且随着数据数量级增长。

(2). 缺点
索引的创建和维护存在消耗,索引会占用物理空间,且随着数据量的增加增加
在对数据库进行增删改时需要维护索引,所以会对增删改的性能存在影响。

(3). 分类
a. 直接创建索引和间接创建索引
直接创建: 使用sql语句创建,Android中可以在sqliteOpenHelper的onCreate或是onUpgrade中直接excusql创建语句,语句如

间接创建: 定义主键约束或者唯一性键约束,可以间接创建索引,主键默认为唯一索引。

b. 普通索引和唯一性索引
普通索引:

唯一性索引:保证在索引列中的全部数据是唯一的,对聚簇索引和非聚簇索引都可以使用,语句为