Sqlite为智能手机插入性能
我试图优化Android中的sqlite的插入速度。 我尝试了很多方法。 就像设置杂注设置,日志模式等一样。
除此之外,我还尝试了单独的插入,准备语句和批量插入。 请记住,所有这些已经被封装在一个事务中。
在我的智能手机(三星Galaxy SIII)中,插入速度仅为20列每秒约250行。 根据Sqlite常见问题,sqlite可以轻松地插入每秒50,000个插入。 因此,我非常乐观地看到插入的数量至少可以达到数千而不是数百。 但是,以上提到的任何一个都没有。 或250行插入已经优化?
请帮帮我。 谢谢。
问候,德克斯特
我使用大公司大小的数据库来增加批量插入速度的一种方法是在进行批量插入时关闭索引。 缺点是你需要对数据库进行独占访问,并且当你完成时你必须重新建立索引。
在移动应用程序中,您可以通过放置“更新应用程序”屏幕轻松获得对数据库的独占访问权限。
在执行批量插入之前,您可以删除任何非唯一索引。 如果您的20列表有20个非唯一索引(每列一个)。 放下20个指数。 执行批量插入。 创建您之前丢弃的20个索引。
还要确保你的代码是紧凑的,并且在循环之前可以在插入循环中做任何事情。 例如,在插入循环之前查找列索引。
如果这不适用于您的应用程序,只需将其作为将来可能需要在后端数据库上执行的操作即可。
您可以使用对象/关系映射(ORM)工具来获得更好的性能。 ORMLite,GreenDao等
Greendao更好,看看
http://greendao-orm.com/
特点 : -
ORM工具的优点: -