QQ空间 新浪微博 腾讯微博 微信 更多
  

安卓数据库08_29

安卓数据库08_29

有哪些?四种

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

什么时候用?

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

怎么用?

创建:db

数据库升级:onUpgrade;

数据库降级:LauncherProvider;

大小:

数据量:

DB储存在SD:

ContentProvider

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

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

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;

减少查询

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

posted @ 2019-08-29 12:30  nupt想象之中  阅读(152)  评论(0编辑  收藏  举报