最近由於項目的需要,需要提高項目中資料的入庫效能,通過最佳化,發現入庫方法不同,效率真的差距很大。
最初代碼如下,直接執行sql語句,外加事務提升效能:
Java代碼
- SQLiteDatabase database = new SQLiteDatabase();
- if (database.isOpen())
- {
- database.beginTransaction();
- try {
- //sql為insert into tableName (name) values ("test")
- database.execSQL(sql);
- }
- database.setTransactionSuccessful();
- } finally {
- database.endTransaction();
- }
- database.close();
- }
最佳化如下:
Java代碼
- SQLiteDatabase database = new SQLiteDatabase();
- //sql為insert into tableName (name) values (?)
- SQLiteStatement sqlListStatment = database.compileStatement(sql);
- if (database.isOpen())
- {
- database.beginTransaction();
- try {
- //index 為1開始索引,value為入庫的值
- //bingXXX為插入XXX類型
- sqLiteStatement.bindString(index, value);
- sqLiteStatement.executeInsert();
- }
- database.setTransactionSuccessful();
- } finally {
- database.endTransaction();
- }
- database.close();
- }
轉自 http://woodn-z.iteye.com/blog/1447719