Android基础:SQLites数据库事物处理的优越性

一直知道数据库的事物处理,但是自己始终在写数据库操作时,总是默认的回避了这件事,想想还是要自己做个测试来让自己警醒,记住数据库事物是非常必要地。

测试结果是:单单一千条数据,在对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);
			}
		});

 

posted @ 2012-11-06 23:52  demoblog  阅读(1635)  评论(0编辑  收藏  举报