我用的是sqlite数据库。
添加记录时,磁盘空间显然被用于非空数据。但是包含空值的数据记录呢?
我问的原因是我会有大量的列(50 多个)和数百万条包含空数据的记录,我想知道这是否是设计我的数据库的最有效方式
最佳答案
在 SQLite 的 record format , 正好需要一个字节来指定一个值为NULL
。
如果您对数据库进行规范化,以便每个非 NULL
值都有一个记录,则可以保存那些 NULL
字节,但是对于非 <NULL
值。
SQLite 的最小记录开销 is :
- 两个字节的单元格指针,
- 至少一个字节的负载长度,
rowid
的几个字节,和- 对于您的情况,指向原始记录的外键有几个字节。
此外,将非NULL
值存储在单独的表中可能需要索引才能进行高效查找。
关于database - 存储空数据是否占用磁盘空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14934488/