2012-06-30 64 views
1

我正在製作一個逐行讀取文件並將記錄插入數據庫的應用程序。記錄的數量大約是五十萬。問題是整個過程大約需要兩個小時。在Android上使用SQLite插入50萬條記錄

我能做些什麼來加速這個過程?

public long insertTable(int id,String word) { 
    ContentValues wordValues = new ContentValues(); 
    wordValues.put(COLUMN_D, id); 
    wordValues.put(COLUMN_WORD, word); 
    return this.sqliteDBInstance.insert(TABLE_ENGLISH, null, wordValues); 
} 

回答

0

封裝內的Transaction你的SQL語句,這將加快行動的數據庫操作速度快得驚人。使用SQLite交易時,因爲是在整個工作

+0

你好@Waqas請給出一些示例代碼或鏈接來應用這種技術。 –

+0

http://simonwdixon.wordpress.com/2011/08/16/android-sqllite-tip-1-wrap-batches-of-writes-in-a-transaction/ – waqaslam

+0

http://notes.theorbis.net/ 2010/02/batch-insert-to-sqlite-on-android.html – waqaslam

0

只創造了單日誌文件我建議使用OrmLite 它讓生活更美好的SQLite 希望能夠幫助

+0

或者greenDAO,都應該爲你編譯語句。 greenDAO更快。 –

0

使用InsertHelper和交易。 InsertHelper非常高效,因爲它使用編譯語句並避免創建對象。在數據庫事務中執行此操作,速度將提高500倍。