Sqlite为智能手机插入性能

我试图优化Android中的sqlite的插入速度。 我尝试了很多方法。 就像设置杂注设置,日志模式等一样。

除此之外,我还尝试了单独的插入,准备语句和批量插入。 请记住,所有这些已经被封装在一个事务中。

在我的智能手机(三星Galaxy SIII)中,插入速度仅为20列每秒约250行。 根据Sqlite常见问题,sqlite可以轻松地插入每秒50,000个插入。 因此,我非常乐观地看到插入的数量至少可以达到数千而不是数百。 但是,以上提到的任何一个都没有。 或250行插入已经优化?

请帮帮我。 谢谢。

问候,德克斯特


我使用大公司大小的数据库来增加批量插入速度的一种方法是在进行批量插入时关闭索引。 缺点是你需要对数据库进行独占访问,并且当你完成时你必须重新建立索引。

在移动应用程序中,您可以通过放置“更新应用程序”屏幕轻松获得对数据库的独占访问权限。

在执行批量插入之前,您可以删除任何非唯一索引。 如果您的20列表有20个非唯一索引(每列一个)。 放下20个指数。 执行批量插入。 创建您之前丢弃的20个索引。

还要确保你的代码是紧凑的,并且在循环之前可以在插入循环中做任何事情。 例如,在插入循环之前查找列索引。

如果这不适用于您的应用程序,只需将其作为将来可能需要在后端数据库上执行的操作即可。


您可以使用对象/关系映射(ORM)工具来获得更好的性能。 ORMLite,GreenDao等

Greendao更好,看看

http://greendao-orm.com/

特点 : -

  • 最高的性能(可能是Android上最快的ORM)
  • 易于使用的API
  • 针对Android进行了高度优化
  • 最小的内存消耗
  • 小型图书馆的大小,关注要领
  • ORM工具的优点: -

  • ORM可以为您提供关系持久性 ,从而实现最快的性能。
  • 较少的开发工作
  • 链接地址: http://www.djcxy.com/p/19819.html

    上一篇: Sqlite insert performance for smartphone

    下一篇: SQLite updating ONE record is very (relatively) slow