安卓數據庫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;

減小查詢

​ 分部加載,減小查詢範圍;

相關文章
相關標籤/搜索