android性能优化10-sql优化

sqlite 基础

  1. 代码里面打开数据库3种方法: context获取;文件获取;sqliteopenhelper来打开
  2. 事务
sqliteDatabase.beginTransaction();
sqliteDatabase.insertOrThrow... //或者其他操作
sqliteDatabase.setTransactionSuccesful();
sqliteDatabase.endTransaction();
  1. 事务的属性
    事务(Transaction)具有以下四个标准属性,通常根据首字母缩写为 ACID:
  • 原子性(Atomicity):确保工作单位内的所有操作都成功完成,否则,事务会在出现故障时终
    止,之前的操作也会回滚到以前的状态。
  • 一致性(Consistency):确保数据库在成功提交的事务上正确地改变状态。
  • 隔离性(Isolation):使事务操作相互独立和透明。
  • 持久性(Durability):确保已提交事务的结果或效果在系统发生故障的情况下仍然存在。

sqlite 优化

  1. 过滤最多的条件放前面
  2. 关联查询乘机最小的为最佳方案
  3. 尽量用代码来处理关联,而不是数据库里面关联
  4. 使用索引时注意,有些情况下索引不一定有效,要用索引查询语句查看。
  5. 批量增删改操作建议用事务,因为可以一次性i/o操作
  6. 不要在主线程使用数据库
  7. 字段多的表建议拆分表或者库
  8. 定期清理数据库中无用或可删除的数据
  9. sql安全问题,用文件加密比写入数据加密好
    SQLCipher开源
  10. sqlite并发问题,用锁来处理
  11. 额外终极sqlite3加的:空了研究
    开启WAL模式,pragma journal_mode=WAL;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容