2012-05-17 38 views
2

您好,我想知道Android上哪種方法更快。Android,SQLiteDatabase.Insert()或SQLiteDatabase.execSQL()更快?

我有一個循環,處理數千行的,我認爲表現受着與SQLiteDatabase.insert()方法。

在插入方法中,我把一個參數與contentvalues,我認爲在後臺該方法必須有一個進程檢查每個contentvalue並建立查詢。

而是在execSQL方法我把整個查詢作爲參數,我覺得方法不必做太多來執行它。

我不知道,如果我是對的,我覺得execSQL優於插入數據的數量可觀,但我不知道......

回答

1

最可能的是,你不會看到任何區別。大部分時間用於實際將數據寫入數據庫,並且查詢生成是相當簡單的步驟。如果您想自己查看差異,我建議您使用兩種方法計時插入。

2

嗯,我試過了,並有beteween他們一點區別...的execSQL是快,但很難注意到它。

但是,我真正的問題是,我沒有使用交易。由於sqlite沒有控制對數據訪問的服務器,sqlite必須關閉並重新打開每個插入的phisycal文件。所以如果你在循環中有一千個插入,並且沒有交易,它將會執行一千個交易。在我的測試中,有一千個插入片段沒有使用事務持續了11秒,而事務持續了1秒。

相關問題