
InnoDB 中空列的存储占用
InnoDB 中,空列的存储占用方式与我们通常的认知不同。与其他数据库不同,InnoDB 不会为 null 值分配字节。而是采用称为「空值列表」的技巧。
空值列表机制
空值列表本质上是一个字节数组。每个字节中的每个比特(bit)代表一个可空列。若比特为 0,则代表该列为空;若比特为 1,则代表该列非空。
空列的存储占用
如果一个 long long 类型的列为空,那么它在空值列表中只占用一个比特,即 1/8 字节。因此,它实际上不会浪费 8 个字节,而是节省了大量存储空间。
需要注意的是,如果一张表中有许多空列,空值列表可能会变得很大。为了解决这个问题,InnoDB 采用了压缩技术来减小空值列表的大小。
以上就是InnoDB 中空列如何节省存储空间?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/51671.html
微信扫一扫
支付宝扫一扫