Android批量插入數據性能優化

作數據同步時遇到一個問題,在下載數據時須要批量的向sqlite插入數據,雖然數據不算多,可是實際測試中每插入一條數據須要將近50ms的時間,這意味着1000條數據就須要花費50s左右的時間,對於用戶來講,體驗太差了,必需要優化。sql

在sqlite插入數據的時候默認一條語句就是一個事務,有多少條數據就有多少次磁盤操做。明白了這個,解決方案就有了,在批量插入數據的時候,只開啓一個事務,這樣只會進行一次磁盤操做,代碼以下:
性能


db.beginTransaction();測試

try {優化

    for (...) {spa

        db.execSQL("...", new Object[]{});sqlite

    }事務

    db.setTransactionSuccessful();同步

} catch (Exception e) {it


} finally {io

    db.endTransaction();

}

使用事務後性能有明顯的提高,以批量操做100條爲例,由原來的5s優化成了如今的1s

相關文章
相關標籤/搜索