SQLite 数据库大于 CSV 平面文件?

SQLite database larger than CSV flat file?

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

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

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

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

SQLite 数据库文件不会变小。将数据放入 database/table 的目的是根据所需的业务 rules/SQL 连接访问该数据。索引和其他元数据(如 table 定义)可以轻松解释额外的 space 要求。

一个 sqlite 数据库包含为 header 保留的 space,还包含 table 模式和额外信息,如 App Id、版本、编码,请参阅 link 了解更多信息下面:

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

看看The SQLite Database File Format

您将看到开销从何而来。

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