android 使用数据库事务提高操作效率
16lz
2022-06-17
//删除多条数据public void deleteMoreRecord(ArrayList checkedRecords){//获取可写的数据库对象sqliteDatabase = dbHelper.getWritableDatabase();String sql = "delete from " + TABLE_NAME + " where id = ?";//预编译 SQLiteStatement stat = sqliteDatabase.compileStatement(sql); //开始事务 sqliteDatabase.beginTransaction(); int length = checkedRecords.size(); AlarmRecordArch singleRecord = new AlarmRecordArch(); for (int i = 0;i < length;i ++) { singleRecord = checkedRecords.get(i); stat.bindLong(1, singleRecord.getIndex()); stat.executeUpdateDelete(); } //事务成功完成,没有这句则事务会自动回滚 sqliteDatabase.setTransactionSuccessful(); //结束事务 sqliteDatabase.endTransaction(); sqliteDatabase.close();}
QUESTION: 为什么事务能够显著的提高数据库操作效率?
在整个数据库中,执行任何一类操作诸如sqliteDatabase.delete()都会创建一个数据库事务,存在这样一种影响效率的情况:需要一次删除N条数据,程序就会创建N次事务。而当自身使用显式的数据库事务时,这些删除数据的操作,就在一次数据库事务中执行,从而在删除(插入、更新)数据特别大的时候大大的提高效率。
更多相关文章
- Android创建和删除桌面快捷方式
- Android对Window对象的管理机制分析
- Android(安卓)ContentObserver ---拦截短信并删除
- android 开发 实例 下部主导航(1)
- Android桌面快捷方式的实现
- Android(安卓)自定义Listview 如何绑定Sqlite数据库数据
- Android(安卓)webview监听网页对话框点击事件
- Crazy Android(安卓)Note Chapter-8
- Android(安卓)开发中使用 SQLite 数据库