【问题标题】:Use my own SQLite database vs Import data from csv file使用我自己的 SQLite 数据库 vs 从 csv 文件导入数据
【发布时间】:2017-03-20 15:56:28
【问题描述】:

我目前正在尝试导入保存在 file.sql 中的 ~300.000 行。

看了几个论坛,几个帖子stackoverflow,我找到了两个主要的解决方案:

什么是最佳解决方案,考虑到性能方面、发展方面(体积)、Android 上的最佳实践......? 在完美的情况下,我可以举个例子吗?

我正在使用 ORMlite 库和经典的 DatabaseHelper 方法,例如: onCreate => 导入我的数据 onUpgrade => 执行我的迁移脚本 (https://riggaroo.co.za/android-sqlite-database-use-onupgrade-correctly/)

编辑:数据库用于读写操作,并与主服务器同步,以获取和发送更改(使用 Flatbuffer)。 我之所以需要导入这些数据,是因为一个时间戳0(后端服务器的数据基础中包含的所有行)的同步日期在时间层面上太长了。 p>

【问题讨论】:

  • “进化方面(体积)”是什么意思?一般来说,使用您自己的数据库,但通过那个可怕的古老代码。 Use SQliteAssetHelper.
  • 数据的体积演化。我的行数(在 file.sql 中)会增长。
  • 这个数据库是只读的吗?
  • 不,我编辑了我的问题。

标签: android database performance sqlite sdk


【解决方案1】:

从性能方面考虑,最好的解决方案是什么

在资产中运送数据库,并在需要时通过using SQLiteAssetHelper 安装它,应该比涉及执行数据库事务的任何事情都要快得多。

关于数据的体积演化。我的行(在 file.sql 中)的数量会增加。

将应用程序部署到新用户时,在资产中运送数据库会更快。

对于现有用户,您的两种方法都不起作用,您需要编写自己的代码来混合:

  • 您希望随应用一起提供的新数据
  • 您已经发货并在用户设备上拥有的旧数据
  • 用户设备上原始应用和更新应用均未附带的数据(例如,来自服务器的数据、用户输入的数据)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    相关资源
    最近更新 更多