加速插入Sqlite datatbase Android?

加速插入Sqlite datatbase Android?,android,sqlite,Android,Sqlite,我使用此函数将数据插入SQLite Android数据库: public long insertAccount(String code,String name,int s3,int s4,String s5,String s6,int s7, int s8,int s9,int s10,int s11,String s12,String s13,int s14,int s15,int s16) { //container and place in it the i

我使用此函数将数据插入SQLite Android数据库:

 public long insertAccount(String code,String name,int s3,int s4,String s5,String   s6,int s7,
        int s8,int s9,int s10,int s11,String s12,String s13,int s14,int s15,int s16) {

    //container and place in it the information you want inserted, updated, etc.
    ContentValues initialValues = new ContentValues();
    initialValues.put(Code, code);
    initialValues.put(Name,name);
    initialValues.put(Type, s3);
    initialValues.put(Level1, s4);
    initialValues.put(Father, s5);
    initialValues.put(ACCCurr,s6);
    initialValues.put(AccNat, s7);
    initialValues.put(LowLevel, s8);
    initialValues.put(DefNum, s9);
    initialValues.put(AccClass, s10);
    initialValues.put(SubClass, s11);
    initialValues.put(SSClass1, s12);
    initialValues.put(SSClass2, s13);
    initialValues.put(Stype1, s14);
    initialValues.put(Stype2, s15);
    initialValues.put(Stype3, s16);
    return db.insert(DATABASE_TABLE, null, initialValues);
}

但是当插入大约70000多行时,这需要很多时间!如何加快插入数据库的过程,以及在插入完成后,如何在数据库上应用更新

使用PHP插入SQLlite android?在android手机中使用php是怎么可能的,很抱歉我没有得到这个

无论如何,我相信您已经在这里编写了java代码,并且您想要在db中插入7k+记录。 在任何数据库中插入大量记录的方式称为“批量插入”,其思想是创建尽可能少的事务,而不是一次性完成所有插入;在关系数据库(如sql server和oracle)的情况下,它也由特定的api完成,但在sqllite中,简单的旧想法是使用一组数据进行单个事务


查看这篇文章,它使用了相同的技术,并且对它进行了很好的解释。

使用PHP插入SQLlite android?在android手机中使用php是怎么可能的,很抱歉我没有得到这个

无论如何,我相信您已经在这里编写了java代码,并且您想要在db中插入7k+记录。 在任何数据库中插入大量记录的方式称为“批量插入”,其思想是创建尽可能少的事务,而不是一次性完成所有插入;在关系数据库(如sql server和oracle)的情况下,它也由特定的api完成,但在sqllite中,简单的旧想法是使用一组数据进行单个事务


查看这篇文章,它使用了相同的技术,并对其进行了很好的解释。

您必须使用事务在一次内完成插入。您可以使用以下选项:

//before insertion
db.beginTransaction();
//====do insertion
//after insertion
db.setTransactionSuccessful()
db.endTransaction();

您必须使用事务在1次内完成插入。您可以使用以下选项:

//before insertion
db.beginTransaction();
//====do insertion
//after insertion
db.setTransactionSuccessful()
db.endTransaction();
一些选择:

  • 预填充数据库。见“

  • 使用事务减少等待I/O的时间。请参阅例如“”。很可能您无法在一个事务中包装所有70k行,但是每个事务应该可以进行100..1000次插入,从而将累计I/O等待时间减少几个数量级

  • 一些选择:

  • 预填充数据库。见“

  • 使用事务减少等待I/O的时间。请参阅例如“”。很可能您无法在一个事务中包装所有70k行,但是每个事务应该可以进行100..1000次插入,从而将累计I/O等待时间减少几个数量级


  • 为什么不从工具而不是代码中插入记录?我需要将这段代码输入到我的应用程序中,它从MySql读取数据!!嗯,但我不知道如何将这些工具添加到代码中,甚至不知道如何使用它!!不管怎样,谢谢,我会尝试,,,为什么不从工具中插入记录而不是代码?我需要将这段代码输入到我的应用程序中,它从MySql读取数据!!嗯,但我不知道如何将这些工具添加到代码中,甚至不知道如何使用它!!无论如何,谢谢我会尝试,,,非常感谢,我的意思是在PHP代码中,当我从MySQL数据库读取到Sqlite DB android时,我使用它,只是PHP代码的传输过程。。但是我通过jason对象接收数据。。然后插入Sqlite数据库..非常感谢,我的意思是在PHP代码中,当我从MySQL数据库读取到Sqlite DB android时,我使用它,只是PHP代码的传输过程。。但是我通过jason对象接收数据。。然后插入到Sqlite数据库中..这不会插入任何内容,因为事务在最后被回滚。你是对的@CL。哦,我的上帝。我忘记调用
    db.setTransactionSuccessful()
    。我编辑了我的回答。这不会插入任何内容,因为交易在最后被回滚。你是对的@CL。哦,我的上帝。我忘记调用
    db.setTransactionSuccessful()
    。我编辑了我的答案非常感谢!!真的很有帮助^_^非常感谢!!真的很有帮助^_^