您的位置:首页 > 移动开发 > Android开发

android开发实例04:SQLite优化方法

2011-12-08 00:35 447 查看
今天写的东西虽然没有工程代码但是我觉得很重要!和大家分享下~~

SQLite的数据库本质文件读写操作,频繁操作打开和关闭是很耗时和浪费资源的;

优化方法事务机制:
这里要注意一点:事务的开启是要锁定DB的,其他对DB的写入操作都是无法成功的。
db.beginTransaction(); //手动设置开始事务
try {
//这里写你数据操作
db.setTransactionSuccessful();
//设置事务处理成功,不设置会自动回滚不提交
} catch (Exception e) {
} finaly {
db.endTransaction(); //提交
}

项目中不会把项目上万条数据存SQL里的,尽管android有SQLite。
那样处理起来非常慢,而且程序经常出现ANR。

打个比方:有200个城市,每个城市500条城市信息,你怎么创建表?

A:我创建一张表存10000条数据。
B:200张表,每张存500条数据。
C:我创建两张表,
一张存city,其实这张表只有1条数据;
Id(编号),
Version(这200个城市更新版本用)
CityDate(200个城市xml格式字符串数据)。

另一张表存城市信息表:200条数据,每个城市一条数据
id(CityDate解析出城市对象对应的id)
Version(这500条城市信息更新版本用)
CityMessage(500条城市信息xml格式字符串数据)。

首先你给用户展示200城市(你只取了一条数据 200个城市xml格式字符串数据进行解析)
用户点击一个城市你显示500条记录(通过城市解析ID,取出城市信息表中对应500数据xml格式字符串数据进行解析)

这样做的好处:
(1)统一数据接口,无论你从网络上直接去数据,还是读本地缓存统一数据接口,xml
(2)数据进行排序,内存操作要快一些;
(3)其实这和自己写文件没什么区别,为什么还要用数据库那,这么做有利于程序版本更新升级数据
维护!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: