数据表字段尽量不为 NULL 原因

1、存储空间优化

存储空间:空串是不占用存储空间的,而 NULL 会占用存储空间。

2、查询效率优化

含有空值的列很难进行查询优化,而且对表索引时不会存储 NULL 值的,所以如果索引的字段可以为 NULL,索引的效率会下降很多。因为它们使得索引、索引的统计信息以及比较运算更加复杂。你应该用 0、一个特殊的值或者一个空串代替空值。

3、联表查询问题

联表查询的时候,例如 LEFT JOIN table2,若没有记录,则查找出的 table2 字段都是 null。假如 table2 有些字段本身可以是 null,那么除非把 table2 中 not null 的字段查出来,否则就难以区分到底是没有关联记录还是其他情况。

4、count(Null column) 问题

如果有 Null column 存在的情况下,count(Null column)需要格外注意,null 值不会参与统计。

5、子查询 NOT IN 

NOT IN 子查询在有 NULL 值的情况下返回永远为空结果。

select name from tbNotNull where name not in (select name from tbHaveNull where id!=1)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值