项目开发为什么要求MySQL采用非空字段

项目开发为什么要求MySQL采用非空字段

题记

企业级项目开发中,数据库建库、表都有一定的规范及要求,在数据库建表时对于一些可能没有数据存储的字段,我们应该要求把它设置为NOT NULL,好多开发同事不理解,那么我们为何如此要求,有什么好处呢?

统一规范

无规矩不成方圆,从小的方面来说,对于任何企业、组织、社会团体,如果没有规矩,规范,就会像一团散沙,就是像漂浮的浮萍,难以长久,更难以成就大事。作为以严谨著称的程序员,在规范合理的前提下,大家遵从规范才有利于项目长久发展,稳定运行,不受时间、人员影响。PS:(代码规范设计规范编码规范注释规范脚本规范配置文件规范文档输出规范等)。

MySQL采用非空字段缺点

正如大家所言,这个字段可能没数据,所以我允许存NULL,一定程度上限制了开发的灵活性,这样说也对,从小而言,我们步入开发行业以来所使用的工具,框架,脚手架,学习文档,无时无刻不在向我们告诉我们这就是开发的规范。

MySQL采用非空字段优点

数据角度分析
节省空间

从数据存储角度分析,NULL 列需要更多的存储空间,需要一个额外字节作为判断是否为NULL的标志位。

减少空值计数错误

NULL COLUMN存在的情况下,COUNT(NULL COLUMN)需要格外注意,NULL 值不会参与统计。

示例

SELECT COUNT(COLUMN)FROM TABLE_NAME;

对索引友好

可参见 https://blog.csdn.net/shang_xs/article/details/90713370?spm=1001.2014.3001.5501

索引效率高的前提是列的区分度大,包含NULL的列很难优化,而且对表索引时不会存储 NULL 值。如果索引字段可以为 NULL,索引的效率会下降。因为它们使得索引、索引的统计信息以及比较运算更加复杂,所以要求列值非空。

示例

ALTER TABLE TABLE_NAME ADD COLUMN_NAME VARCHAR(32) NOT NULL DEFAULT ‘’ COMMENT ‘新增 VARCHAR字段’;

ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT NOT NULL DEFAULT 0 COMMENT ‘新增INT字段’;

NOT IN NOT LIKE <>查询

NOT IN NOT LIKE <>等条件查询在有 NULL 值的情况下,返回为空结,查询数据存在问题。

代码角度分析
NULLPOINTEREXCEPTION异常问题

代码使用时,对于映射属性处理可以在能减少NULLPOINTEREXCEPTION异常情况。

代码处理数据不准

如上文所示,代码执行过程中涉及数据库相关操作时,会存在问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值