安卓数据库08_29

安卓数据库08_29

有哪些?四种

  1. SharedPrefeerance
  2. 文件储存
  3. SQLIte
  4. 网络储存

何时用?

数据量大,小, 开关状态, 持久性,电话薄,严格控制访问控制;java

怎么用?

建立:dbandroid

数据库升级:onUpgrade;git

数据库降级:LauncherProvider;sql

大小:数据库

数据量:缓存

DB储存在SD:网络

ContentProvider

是什么: 为了储存,获取数据,提供的统一结构,实现应用程序间数据的共享;app

app:contentResolver——————binder--》ContentProvider-------URI---》四种数据库ide

URI与UriMatcher对比

UriMatcher:Scheme+authority+path性能

  1. Scheme:http.file,git,ftp
  2. UriMatcher():经过分隔符截取,落得List;
  3. *表示text的占位符
  4. 表示使用数字的占位符

ContentProvider批量处理
  1. 事务处理:

Android中SQL语言基础

与SQL差异

  1. SQLite不支持Drop column;
  2. 经过先复制,而后修改表名称来修改;

封装API的方式:

db.insert(String table, String NullColumnHach,ContentValues values);

db.update(String table, String NullColumnHach,ContentValues values);

db.delete (String table, String NullColumnHach,ContentValues values);

db.query (String table, String NullColumnHach,ContentValues values);

显式执行SQL语句:

db.rawQuery(String sql, String [] selectionArgs);

db.executeSQL(String sql );

db.executeSQL(String sql ,Object[] bindArgs);
#查询:
Select * form 表名称
Where 条件子句
Group by 分组字句
Having 
Order by 排序子句

#插入
Insert into 表名称
Set 字段名=值
Where 条件子句

#更新
Update 表名
Set 字段名=值
Where 条件子句

#删除
Delete form 表名
Where 条件子句

数据库的优化思路

  1. Log分析:确认是不是数据库的问题
  2. 流程优化:确认数据库优化的方向

log分析:

  1. 界面白屏
  2. 耗时操做:
    1. 减小操做次数
    2. 进行缓存, 内存换时间
    3. 牺牲次要功能性能

优化思路:

  1. 事物批量:批量进行插入删除,更新
  2. 索引:堆排序搜索走索引
  3. 假处理:假删除和假保存
  4. 减小耗时操做:避免cursor遍历时作耗时操做

插入:能够借鉴123

查询借鉴24

更新借鉴1

删除借鉴13

均适用的包含:

快速收敛

  1. 慎用Select *
  2. Where 进行匹配
  3. Join操做,数量小的放前面, Join table1 Join table2;

减小查询

​ 分部加载,减小查询范围;

相关文章
相关标签/搜索