android sqlite应用优化(资料整理)
1. 优化插入速度
a.不要绑定空列
- 在我的程序,至少有50%的列是空值。碰到空值列,就不调用ih.bind()方法对它进行绑定,就我的程序而言,当列值为null或者空的字符串是,
- 有将近30%的性能提升
b.临时关闭sqlitedatabase的同步锁检查功能
- 我在SQLiteOpenHelper.onCreate的方法中load数据库,在此期间,假如只有一个线程访问databaser,那么就不需要sqlite进行同步访问检查
- 所以,调用SQLiteDatabase.setLockingEnabled(false) ,暂时将锁检查关闭。这个措施可以有35%的速度提升
c. SQLiteStatement :进行批量插入数据。
String sql = "insert into表名(对应的列) values(?)"; SQLiteStatement stat = db.compileStatement(sql); db.beginTransaction(); for (数据集) { //循环所要插入的数据 } db.setTransactionSuccessful(); db.endTransaction(); db.close();