【问题标题】:What is the cost of using NULL in database columns?在数据库列中使用 NULL 的成本是多少?
【发布时间】:2011-05-17 15:54:53
【问题描述】:

我经常使用MySQLSQLite,并计划很快将更多PostgreSQL 引入我的工作流程。考虑到这一点,在每个数据库中使用 NULL 的成本是多少?我听说 MySQL 会在每个 NULL 列值中添加一个额外的位,以将其标记为可为空。

【问题讨论】:

  • 某些 DBMS 将 null 和 empty 视为相同,就字符串而言(Sybase、MSSQL)。对于非字符串类型,可空类型总是需要比不可空类型更多的存储空间。这是因为,正如您所说,您至少需要一个位来指示该值是否为空。我想某些 DMBS 可能能够在一定程度上压缩数据,但在最坏的情况下,可空类型总是会比不可空类型消耗更多的数据。

标签: mysql sqlite postgresql null


【解决方案1】:

这个问题是针对 PostgreSQL 单独回答的: How much disk-space is needed to store a NULL value using postgresql DB?

对于 MySQL: NULL in MySQL (Performance & Storage)

但回顾一下,它们都使用位掩码字段来标记空值。

【讨论】:

  • 即使您不使用空值,他们是否还会使用这些位掩码字段?
猜你喜欢
  • 2010-09-29
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 2010-09-10
相关资源
最近更新 更多