page contents

字段为什么要定义为NOT NULL?

轩辕小不懂 发布于 2021-06-10 14:45
阅读 631
收藏 0
分类:数据库

最佳答案 2021-06-10 14:48

1001
Pack
Pack

一般情况,都会设置一个默认值,不会出现字段里面有null,又有空的情况。主要有以下几个原因:

1. 索引性能不好,Mysql难以优化引用可空列查询,它会使索引、索引统计和值更加复杂。可空列需要更多的存储空间,还需要mysql内部进行特殊处理。可空列被索引后,每条记录都需要一个额外的字节,还能导致MYisam 中固定大小的索引变成可变大小的索引。

2. 如果某列存在null的情况,可能导致count() 等函数执行不对的情况。

3. sql 语句写着也麻烦,既要判断是否为空,又要判断是否为null等。

请先 登录 后评论