最佳做法是始终在MySQL列上使用默认值吗?
这会改善表现吗?
我已将列设置为NOT NULL
,但未指定默认值
这是不好的做法吗?
答案 0 :(得分:4)
最好在mysql列上始终使用默认值吗?
NO
这实际上取决于
如果您想确保输入合理数据,则应不为not null
列设置默认值。
仅为具有合理默认值的列设置默认值
如果您可以null
离开,只需允许null
。
这会提高性能吗?
它会慢慢减慢的插入 但是它可以加快您的选择,因为您不必测试null 当然,DB会花费少量时间来设置默认值 除非你是批量插入,否则你不太可能注意到任何延迟。
答案 1 :(得分:2)
效果
插入从理论上讲,应该更快才能使用默认值而不是发送所有值。事实上,性能差异很小,你无法衡量它。
一般:使用 NOT NULL比使用NULL值更快。如果不需要处理Null值,特别是索引结构的工作速度会更快。
如果您使用NOT NULL 使用默认值
最佳实践
在现实世界中,你应该做,你想要的结果。
使用DEFAULT值,如果您不在乎是否知道真实值,但又想确保至少存在默认值。
如果使用NOT NULL,请始终使用DEFAULT。
<强>实施例强>
生日:对这些用户使用NULL 值,您不知道生日。
isDisabled:不要使用NULL ,而是将default设置为0;因此,如果没有设置任何内容,则不会禁用用户。你决定,所以你不需要NULL。
答案 2 :(得分:0)
如果您将其指定为NOT NULL,那么您应该拥有默认值,除非您控制输入的数据。 NOT NULL意味着总会有一个值,所以有一个默认值是很好的做法。您的所有列都需要为NOT NULL吗?
答案 3 :(得分:0)
没有!当您需要时,可以使用默认值,但不会在性能中设置不影响!