MySQL 列是否应该始终具有默认值?

Jon*_*isp 5 mysql ddl

在 MySQL 列上始终使用默认值是最佳做法吗?
这会提高性能吗?
我已将我的列设置为NOT NULL但未指定默认值。
这是不好的做法吗?

Joh*_*ica 6

始终在 mysql 列上使用默认值是最佳做法吗?

这真的取决于。
如果你想确保敏感数据被输入,那么你应该设置一个默认值not null列。
仅为具有合理默认值的列设置默认值。
如果你可以逃脱,null只是允许null

这会提高性能吗?

它会稍微减慢您的插入速度。
但它可能会加快您的选择,因为您不必测试 null。
当然,DB 花费少量时间来设置默认值。
除非您批量插入,否则您不太可能注意到任何延迟。


Rob*_*ert 1

如果您将其指定为 NOT NULL,那么您应该有一个默认值,除非您控制输入的数据。NOT NULL 意味着总会有一个值,因此使用默认值是一个很好的做法。您的所有列都需要为 NOT NULL 吗?