mysql字段后面的not null 到底要不要写

声明:参考自 为什么mysql字段要设置为not null?

写在开头:

经过一段时间的探索(填坑),我发现频繁使用null会导致索引,查询,代码的规范性等方面变得很糟。

我想说的是:

在MYSQL官方有一段对NULL的解释:


“NULL columns require additional space in the row to record whether their values are NULL.

For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.”


. NULL值是未知的,且占用空间,不走索引

. 空值是不占用空间的

就像我上面提到的这位大佬所说的那样:

打个比方来说,你有一个杯子,空值代表杯子是真空的,NULL代表杯子中装满了空气,虽然杯子看起来都是空的,但是区别是很大的。

我认为,空值(即' ',也就是真空)是不占空间的,而NULL(即“空气”)是占空间的。从常理也是可以说得过去的,“真空”里面放进“空气”也就不是“真空”了。

举个栗子:

test_tmp1

insert null 试验。

试验过程

 写在最后:

在平时的书写时,具体写不写not null 应该视情况而定,但我个人建议,应该在create/alter table时把not null 写在字段后面,这样常常可以避免一些不必要的麻烦。

猜你喜欢

转载自blog.csdn.net/qq_40795214/article/details/81675184