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智库其它相关文章!