【发布时间】:2011-05-17 15:54:53
【问题描述】:
我经常使用MySQL 和SQLite,并计划很快将更多PostgreSQL 引入我的工作流程。考虑到这一点,在每个数据库中使用 NULL 的成本是多少?我听说 MySQL 会在每个 NULL 列值中添加一个额外的位,以将其标记为可为空。
【问题讨论】:
-
某些 DBMS 将 null 和 empty 视为相同,就字符串而言(Sybase、MSSQL)。对于非字符串类型,可空类型总是需要比不可空类型更多的存储空间。这是因为,正如您所说,您至少需要一个位来指示该值是否为空。我想某些 DMBS 可能能够在一定程度上压缩数据,但在最坏的情况下,可空类型总是会比不可空类型消耗更多的数据。
标签: mysql sqlite postgresql null