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

MySQL 中 NULL 的存储
NULL 的含义
在 MySQL 中,NULL 表示一个未知或不存在的值,与 SQL 标准中的概念相同。
存储方案
MySQL 不直接存储 NULL 值。相反,它使用一个特殊值来表示 NULL,称为 bit-field marker (位字段标记)。
bit-field marker 是一个 1 比特的值,保存在表中每个列的末尾。当该值为 0 时,表示该列的值存在;当该值为 1 时,表示该列的值为 NULL。
本文档主要讲述的是iOS界面设计尺寸规范;在最新的iOS7的风格中,苹果已经开始慢慢弱化状态栏的存在,将状态栏和导航栏合在了一起,但是再怎么变,尺寸高度也还是没有变的,只不过大家在设计iOS7风格的界面的时候多多注意下。感兴趣的朋友可以过来看看
存储结构
如下所示,每个列分配的空间中包含数据值和 bit-field marker:
| 数据值 | bit-field marker |
效率优化
MySQL 使用 bit-field marker 来表示 NULL 是一种高效的存储方案,因为它:
- 只需要 1 比特来表示 NULL 值
- 允许快速检查 NULL 值,只需要检查 bit-field marker 即可
- 减少了存储空间,因为 NULL 值不需要存储其实际值









