本文主要是介绍mysql强烈建议不要使用Null,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Mysql难以优化引用可空列查询,它会使索引、索引统计和值更加复杂。可空列需要更多的存储空间,还需要mysql内部进行特殊处理。可空列被索引后,每条记录都需要一个额外的字节,还能导致MyISAM中固定大小的索引变成可变大小的索引。
mysql不使用null的原因
(1)所有使用NULL值都可以通过一个有意义的值表示,这样也有利代码的可读性和可维护性,并能从约束上增强业务数据的规范性。
(2)NULL值到非NULL值的更新无法做到原地更新,更容易发生索引分裂,从而影响性能。
(3)not in、!=查询在有NULL值的情况下返回永远为空结果,查询容易出错。
select * from tableA where xxx not in(1, 2, null) 返回空结果
select * from tableA where xxx!=‘abc' 返回结果不包括xxx为null值
select concat("1", null) from dual; 只要任意一个字段为null都会造成拼接的字符为null
select count(*) from tableA; null不参与统计
注意null字段的判断方式,=null将会得到错误的结果。
(4)Null列需要更多的存储空间:需要一个额外字节作为判断是否为Null的标志位
这篇关于mysql强烈建议不要使用Null的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!