【问题标题】:the best database for storing a large JSON存储大型 JSON 的最佳数据库
【发布时间】:2015-02-16 09:48:33
【问题描述】:

使用JACKSON解析后我有一个大的json文件,我必须将它存储到数据库中,这需要几分钟所以我的问题 1-有什么方法可以加快存储速度? 2-还有另一个数据库? 3-使用对象数据库可以帮助我吗? 我使用 SQLITE 数据库,我听说过 RealM,但我不确定是否会使用它,请帮帮我

【问题讨论】:

  • 展示如何在 db 中插入 json
  • 就像下面建议的那样,最好是写入文件或只下载您需要的数据 - 不是一次全部。

标签: android json performance sqlite realm


【解决方案1】:

如果您将 json 直接存储在 sqlite 中,您可能做错了什么。

当您需要对象之间的关系时,数据库很有用,因此您有表、索引、键和类似的东西。

不管怎样,花几分钟时间真的很奇怪,但我建议你重新考虑你的架构,也许只是把它写在一个文件上。

【讨论】:

    【解决方案2】:

    SQLite 中的更改是 ACID(原子的、一致的、隔离的、持久的)。这意味着每个更新、插入和删除操作都是 ACID。不幸的是,这需要一些数据库处理开销,因此您应该将 SQLite 数据库中的更新包装在一个事务中,并在几次操作后提交该事务。这可以显着提高性能。

    以下代码演示了性能优化。

    db.beginTransaction();
    try {
       for (int i= 0; i< values.lenght; i++){
         // TODO prepare ContentValues object values
         db.insert(your_table, null, values);
         // In case you do larger updates
         yieldIfContededSafely()
         }
         db.setTransactionSuccessful();     
        } finally {
          db.endTransaction();
    } 
    

    参考:http://www.vogella.com/tutorials/AndroidSQLite/article.html

    【讨论】:

    • 事务将减少大约 90% 的插入时间
    猜你喜欢
    • 2015-03-18
    • 1970-01-01
    • 2013-05-29
    • 2012-12-21
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    相关资源
    最近更新 更多