注册

mysql中null怎么存储的

mysql 中 null 值表示未知或不存在,存储为一个 1 比特的位字段标记,位于每个列数据值末尾。这种存储方案高效地表示 null 值,只需 1 比特,允许快速检查,并减少存储空间。

MySQL 中 NULL 的存储

NULL 的含义

在 MySQL 中,NULL 表示一个未知或不存在的值,与 SQL 标准中的概念相同。

存储方案

MySQL 不直接存储 NULL 值。相反,它使用一个特殊值来表示 NULL,称为 bit-field marker (位字段标记)。

bit-field marker 是一个 1 比特的值,保存在表中每个列的末尾。当该值为 0 时,表示该列的值存在;当该值为 1 时,表示该列的值为 NULL。

存储结构

如下所示,每个列分配的空间中包含数据值和 bit-field marker:

| 数据值 | bit-field marker |

效率优化

MySQL 使用 bit-field marker 来表示 NULL 是一种高效的存储方案,因为它:

  • 只需要 1 比特来表示 NULL 值
  • 允许快速检查 NULL 值,只需要检查 bit-field marker 即可
  • 减少了存储空间,因为 NULL 值不需要存储其实际值

以上就是mysql中null怎么存储的的详细内容,更多请关注CTO智库其它相关文章!