SQLite数据库是否比CSV平面文件更大?

9

我原本以为使用SQLite会降低数据的总体积,但实际上我发现CSV格式的数据比SQLite数据库小了4MB。

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

CSV文件大小为19MB,而SQLite数据库大小为23MB。如果这个表格是10倍以上的大小,那么解析CSV文件比使用SQLite更好。

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

3个回答

13

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


感谢您澄清这一点,Morrison。 - jskidd3
1
关于在移动应用程序中存储大量数据,您推荐使用哪种文件格式?我想JSON不是一个好选择,CSV是最好的选择吗? - jskidd3
1
@jskidd3 如果数据模型简单,那么使用CSV没有任何问题。一切都取决于数据本身。如果你可以承受从/到CSV加载/存储数据的开销,那么这也将是一个使用案例问题。此外,别忘了压缩对于存储和传输都十分重要。祝好运! - Morrison Chang
实际上,有一些比 CSV 文件更小的数据库。这是通过使用表格数据压缩算法实现的。看看 TrailDB。 - Marek Marczak

0
一个 SQLite 数据库包含保留头部的空间,还包含表模式和额外信息,例如应用程序 ID、版本、编码等。请参阅下面的链接获取更多信息:

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


0

看一下The SQLite Database File Format ,你就会明白开销是从哪里产生的。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接