最近在做Android項目的時候遇到一個問題,應用程序初始化時需要批量的向sqlite中插入大量數,導致應用啟動過慢。
android使用的是sqlite數據庫,sqlite是比較輕量級的數據庫,在Google了之後發現,sqlite事務處理的問題,在sqlite插入數據的時候默認一條語句就是一個事務,有多少條數據就有多少次磁盤操作。我的應用初始5000條記錄也就是要5000次讀寫磁盤操作。
解決方法:
添加事務處理,把5000條插入作為一個事務
dataBase.beginTransaction(); //手動設置開始事務
//數據插入操作循環
dataBase.setTransactionSuccessful(); //設置事務處理成功,不設置會自動回滾不提交
dataBase.endTransaction(); //處理完成