MySQL,AUTO_INCREMENT和NOT NULL

时间:2015-02-27 17:04:15

标签: mysql sql auto-increment notnull

在MySQL表格中,显然你可以将INT设置为NOT NULL和AUTO_INCREMENT,但是当它们一起工作时,前者真的有必要吗?

除此之外,是否有删除NOT NULL的性能,内存,存储或速度加值?

1 个答案:

答案 0 :(得分:2)

作为一个好的设计问题,如果列需要一个值才能正常运行,那么它应该被声明为NOT NULL。

这就是说,实际上,将自动增量列声明为可空意味着您可以显式地向其传递空值,并且仍然可以为该列生成值。

http://dev.mysql.com/doc/refman/5.7/en/example-auto-increment.html

在提高效率和空间方面,最好使列UNSIGNED,因为它永远不会取负值,并使用与表格保持同步的最小数据类型大小

根据定义,所有列约束都会对性能造成一些损失,因为服务器必须将资源用于存储和检查约束。

但这是微不足道的,尤其是对于检查空值等常规事件而言,如果它在您的记录中强制执行有效,则值得花费。