一直知道数据库的事物处理,但是自己始终在写数据库操作时,总是默认的回避了这件事,想想还是要自己做个测试来让自己警醒,记住数据库事物是非常必要地。
测试结果是:单单一千条数据,在对sqlite数据库进行操作时,使用事物和不适用事物前后相差78倍之多,不难想象大数据增加时如果没有事物处理的意识,对软件性能来说只能是灾难性的。
setContentView(R.layout.main); helper = new MyOpenDbHelper(this); button = (Button) findViewById(R.id.bt); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 未使用同一个事物处理:57013ms // 使用同一个事物处理:730ms, 仅仅一千条数据,却前后相差78倍之多,可见事物的重要性 // 对表数据进行增加、删除、更新的时候最好时候事物处理, SQLiteDatabase writableDatabase = helper.getWritableDatabase(); time = System.currentTimeMillis(); writableDatabase.beginTransaction(); for (int i=0; i<1000; i++) { String sql = "insert into myTab values ("+ i + "," + i + ","+ "'tom'" + ")"; System.out.println(sql); writableDatabase.execSQL(sql); } writableDatabase.setTransactionSuccessful(); writableDatabase.endTransaction(); System.out.println(System.currentTimeMillis() - time); } });