这篇文章我想谈下空值位图掩码(NULL bitmap mask) ,并揭开它的神秘面纱.空值位图掩码是在存储引擎层为列是否存储NULL值进行编码.它是一个简单的位图掩码,如果值是1的话,表示这列有NULL值,如果是0的话,表示这列有具体的值(非NULL值). 这样的解释听起来非常直接,但当我们进一步分析时,用这个方法还是有启发性的.首先我们来看看数据行的组合结构,这是存储引擎用来在磁盘上存储记录的结构.结构如下图所示: 这个格式被称为定长变量格式(FixedVar format),因为SQL S…