2012-06-30 67 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倍。