提高数据库sql的执行效率(使用事务)

发表于:,更新于:,By Sally
大纲
  1. 1. 操作数据库
    1. 1.1. 假设,我们往数据库存储数据

操作数据库

  • 通常,我们在操作数据库的时候,每执行一个sql语句时,都会打开数据库,关闭数据库,这无疑浪费了很多时间

  • 那么,我们也可以借用事务来完成某些操作,省略了中途频繁打开数据库关闭数据库的操作,可以节省不少时间

假设,我们往数据库存储数据

  • 我们需要存储1w条数据,就会用一个for循环来跑一个插入数据的sql语句,耗时为48936ms
1
2
3
4
5
long start = System.currentTimeMillis();
for(int i=0; i<10000; i++) {
db.execSQL("insert into person(name, age, gender) values('sslei', 23, 'm');");
}
long end = System.currentTimeMillis();
  • 为了提高效率,我们也可以使用事务来存储数据,耗时为5848ms,节约9倍左右的时间
1
2
3
4
5
6
7
8
9
10
11
long start = System.currentTimeMillis();
try{
db.beginTransaction();
for(int i=0; i<10000; i++) {
db.execSQL("insert into person(name, age, gender) values('sslei', 23, 'm');");
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
long end = System.currentTimeMillis();