栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL中的NULL(性能和存储)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL中的NULL(性能和存储)

这取决于您使用的存储引擎。

在MyISAM格式中,每个行标题都包含一个位域,每个列的每个位都具有一位以对NULL状态进行编码。NULL列仍会占用空间,因此NULL不会减少存储量。参见https://dev.mysql.com/doc/internals/en/myisam-
introduction.html

在InnoDB中,每一列在行标题中都有一个“字段开始偏移量”,每列一个或两个字节。如果该列为NULL,则该字段起始偏移量的高位为开。在那种情况下,该列根本不需要存储。因此,如果您有很多NULL,则应该大大减少存储空间。参见https://dev.mysql.com/doc/internals/en/innodb-
field-contents.html

编辑:

NULL位是行标题的一部分,您不选择添加它们。

我可以想象NULL提高性能的唯一方法是,在InnoDB中,如果行中包含NULL,则数据页可以容纳更多行。因此,您的InnoDB缓冲区可能更有效。

但是,如果这在实践中提供了显着的性能优势,我将感到非常惊讶。担心NULL对性能的影响在于微优化领域。您应该将注意力集中在其他方面,这些领域可以带来更大的收益。例如,添加精心选择的索引或增加数据库缓存分配。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392806.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号