MySQL字段的属性应该尽量设置为NOT NULL
程序员文章站
2022-07-06 12:08:09
数据库建表时,对于一些可填可不填的字段,我们应该尽量把它设置为 NOT NULL。这种做法即可以提高性能,又可以在很大程度上避免空指针类的问题,好处颇多。 1.节省空间 NULL 列需要更多的存储空间:需要一个额外字节作为判断是否为 NULL 的标志位。 2.空指针 查询时,可以在一定程度上减少 N ......
数据库建表时,对于一些可填可不填的字段,我们应该尽量把它设置为 not null。这种做法即可以提高性能,又可以在很大程度上避免空指针类的问题,好处颇多。
1.节省空间
null 列需要更多的存储空间:需要一个额外字节作为判断是否为 null 的标志位。
2.空指针
查询时,可以在一定程度上减少 nullpointerexception。
3.减少因为空值而出现的计算错误
如果有 null column 存在的情况下,count(null column) 需要格外注意,null 值不会参与统计。
4.索引
含有空值的列很难进行查询优化,而且对表索引时不会存储 null 值的。所以如果索引的字段可以为 null值,索引的效率会下降。因为它们使得索引、索引的统计信息以及比较运算更加复杂。
应该用0、一个特殊的值或者一个空串代替 null值。
5.使用 != ,not in 的情况
not in 、!= 等负向条件查询在有 null 值的情况下,返回永远为空结果,查询容易出错。
以上仅是本人最近学习所做的总结和思考,有不对的地方欢迎指正。