SQLite是一个开源的嵌入式关系数据库,由D. Richard Hipp于2000年发布,它能减少应用程序管理数据的开销,可移植性好,很容易使用,高效而且可靠。本文是关于SQLite的优化方法,是比较重要的内容。

       SQLite的数据库本质是文件读写操作,频繁操作打开和关闭是很耗时和浪费资源的,有必要进行相关优化。

       优化方法事务机制:

       这里要注意一点:事务的开启是要锁定DB的,其他对DB的写入操作都是无法成功的。

Java代码
  1. db.beginTransaction(); //手动设置开始事务   
  2. try {   
  3. //这里写你数据操作   
  4. db.setTransactionSuccessful();   
  5.     //设置事务处理成功,不设置会自动回滚不提交   
  6. catch (Exception e) {   
  7. } finaly {   
  8. db.endTransaction(); //提交   
  9. }  

       项目中不会把项目上万条数据存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)其实这和自己写文件没什么区别,为什么还要用数据库那,这么做有利于程序版本更新升级数据维护!

本文发布:Android开发网
本文地址:http://www.teaching4real.com/android/example/61.html
2012年6月3日
发布:鸡啄米 分类:Android开发实例 浏览: 注册送白菜网:1