智能手机的Sqlite插入性能

时间:2014-12-28 17:43:06

标签: android performance sqlite

我试图在android中优化sqlite的插入速度。我尝试了很多方法。比如设置pragma设置,日志模式等等。

除此之外,我还尝试了单独的插入,预备声明和批量插入。请记住,所有这些都已包含在交易中。

我的智能手机(三星Galaxy SIII)的插入速度最高可达20列每秒约250行。根据Sqlite faq,sqlite每秒可以轻松插入50,000个插入。因此,我非常乐观地认为插入至少有数千而不是数百。但是,上述提到的都不起作用。或者已经优化了250行插入?

请帮帮我。感谢。

此致 德克斯特

2 个答案:

答案 0 :(得分:1)

我在大公司规模的数据库上使用的一种方法是提高批量插入速度,这是在进行批量插入时关闭索引。缺点是您需要拥有对数据库的独占访问权限,并且必须在完成后重新开启索引。

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

SQLITE可以在执行批量插入之前删除任何非唯一索引。如果您的20列表有20个非唯一索引(每列一个)。删除20个索引。执行批量插入。创建先前删除的20个索引。

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

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

答案 1 :(得分:-2)

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

Greendao更好,看看

http://greendao-orm.com/

功能: -

  • 最高性能(可能是Android上最快的ORM)
  • 易于使用的API
  • 针对Android进行了高度优化
  • 最小内存消耗
  • 小型图书馆大小,专注于必需品

ORM工具的好处: -

  • ORM可以为您提供关系 持久性 ,从而实现最快的效果。
  • 减少开发工作