Q:了解SQLite中的事务操作吗?是如何做的
SQLite在做CRDU操作时都默认开启了事务,然后把SQL语句翻译成对应的SQLiteStatement并调用其相应的CRUD方法,此时整个操作还是在rollback journal这个临时文件上进行,只有操作顺利完成才会更新db数据库,否则会被回滚。
CRUD:增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)
Q:使用SQLite做批量操作有什么好的方法吗?
使用SQLiteDatabase的beginTransaction方法开启一个事务,将批量操作SQL语句转化为SQLiteStatement并进行批量操作,结束后endTransaction()
Q:如何删除SQLite中表的个别字段?
SQLite数据库只允许增加字段而不允许修改和删除表字段,只能创建新表保留原有字段,删除原表
Q:使用SQLite时会有哪些优化操作?
使用事务做批量操作
及时关闭Cursor,避免内存泄露
耗时操作异步化:数据库的操作属于本地IO耗时操作,建议放入异步线程中处理
ContentValues的容量调整:ContentValues内部采用HashMap来存储Key-Value数据,ContentValues初始容量为8,扩容时翻倍。因此建议对ContentValues填入的内容进行估量,设置合理的初始化容量,减少不必要的内部扩容操作
使用索引加快检索速度:对于查询操作量级较大、业务对查询要求较高的推荐使用索引
更多推荐
200斤牌面试必备:SQLite面试题 请安利(不停更)
发布评论