MySQL字段的属性应该尽可能设置为NOT NULL

数据库建表时,对于一些可填可不填的字段,咱们应该尽可能把它设置为 NOT NULL。这种作法便可以提升性能,又能够在很大程度上避免空指针类的问题,好处颇多。数据库

1.节省空间性能

NULL 列须要更多的存储空间:须要一个额外字节做为判断是否为 NULL 的标志位。学习

2.空指针优化

查询时,能够在必定程度上减小 NullPointerException。指针

3.减小由于空值而出现的计算错误索引

若是有 Null column 存在的状况下,count(NULL column) 须要格外注意,NULL 值不会参与统计。io

4.索引效率

含有空值的列很难进行查询优化,并且对表索引时不会存储 NULL 值的。因此若是索引的字段能够为 NULL值,索引的效率会降低。由于它们使得索引、索引的统计信息以及比较运算更加复杂。统计

应该用0、一个特殊的值或者一个空串代替 NULL值。总结

5.使用 != ,NOT IN 的状况

NOT IN 、!= 等负向条件查询在有 NULL 值的状况下,返回永远为空结果,查询容易出错。

 

以上仅是本人最近学习所作的总结和思考,有不对的地方欢迎指正。

相关文章
相关标签/搜索