【问题标题】:SQLite database larger than CSV flat file?SQLite 数据库大于 CSV 平面文件?
【发布时间】:2015-04-04 02:58:54
【问题描述】:

我曾预计使用 SQLite 会减少所用数据的总大小,但实际上我看到 CSV 表示比 SQLite 数据库小 4mb。

数据库包含一个包含 400,000 行的表。该表有四列。

CSV 文件大小为 19MB,SQLite 数据库大小为 23MB。如果这个表大 10 倍,我最好解析 CSV 文件而不是 SQLite。

为什么 SQLite 数据库比 CSV 文件大?

【问题讨论】:

    标签: android mysql database sqlite csv


    【解决方案1】:

    不应期望 SQLite 数据库文件更小。将数据放入数据库/表的目的是根据所需的业务规则/SQL 连接访问该数据。索引和其他元数据(如表定义)可以轻松解释额外的空间需求。

    【讨论】:

    • 感谢莫里森的澄清。
    • 关于在移动应用程序中存储大量数据,您推荐哪种文件格式?我认为 JSON 不是一个好的选择,CSV 是最好的吗?
    • @jskidd3 如果数据模型很简单,CSV 没有问题。一如既往,这取决于数据。如果您可以将数据从 CSV 加载/存储到 CSV,这也将是一个用例问题。也不要忘记存储和传输的压缩。祝你好运。
    • 其实有些数据库的占用空间比csv文件还小。它是使用表格数据压缩算法实现的。看看 TrailDB。
    【解决方案2】:

    一个 sqlite db 包含为 header 保留的空间,还包含表模式和额外信息,如 App Id、版本、编码,请参阅下面的链接以获取更多信息:

    http://www.sqlite.org/fileformat.html

    【讨论】:

      【解决方案3】:

      The SQLite Database File Format

      您将看到开销来自何处。

      数据库的目的不仅仅是存储原始数据。您获得了整个关系结构、索引...您可能唯一期望的是压缩数据文件,但它可能会影响性能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-21
        • 2011-01-22
        • 1970-01-01
        • 2012-06-24
        • 2012-05-04
        相关资源
        最近更新 更多