我使用的是sqlite数据库 添加记录时,磁盘空间显然用于非空数据。但是包含空值的数据记录呢? 为什么我要问的是,我将拥有大量列(50+)和数百万条包含空数据的记录,我想知道它是否是设计数据库的最有效方法
答案 0 :(得分:4)
在SQLite的record format中,只需要一个字节来指定值为NULL
。
如果规范化数据库以使每个非NULL
值有一条记录,则保存NULL
个字节,但非NULL
值会产生额外开销。
SQLite的最小记录开销is:
rowid
和此外,将非NULL
值存储在单独的表中可能需要索引才能获得有效的查找。