首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL列是否应该始终具有默认值?

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

Stack Overflow用户
提问于 2011-11-04 21:39:21
回答 4查看 3.3K关注 0票数 5

在MySQL列上始终使用默认值是最佳实践吗?

这会提高性能吗?

我已将列设置为NOT NULL,但尚未指定默认值。

这是不是很糟糕的做法?

EN

回答 4

Stack Overflow用户

发布于 2011-11-04 21:43:52

总是在mysql列上使用默认值是最佳实践吗?

不是

这真的要看情况。

如果您希望确保输入合理的数据,那么您应该为not null列设置一个默认值。

仅为具有合理默认值的列设置默认值。

如果您可以使用null,那么只需允许null即可。

这会提高性能吗?

它会稍微减慢你的插入速度。

但这可能会加快你的选择速度,因为你不需要测试null。

当然,DB会花费少量的时间来设置默认值。

除非您是批量插入,否则您不太可能注意到任何延迟。

票数 6
EN

Stack Overflow用户

发布于 2017-01-13 04:51:49

Performance

  1. Inserts从理论上讲,使用默认值应该比发送所有值更快。事实上,性能差异是如此之小,您无法衡量it.
  2. In一般的:使用it.
  3. In NULL比使用NULL值更快的。特别是,如果索引结构不必处理NULL值,则它们的工作速度会更快。
  4. 如果您使用not Null use Default value

最佳实践

在现实世界中,你应该做你想要的作为结果。

  • 如果要保留信息“我不知道实值”,请使用空值。如果您不关心是否知道实值,但要确保至少存在一个默认值,请使用默认值。
  • 如果使用NOT NULL,则始终使用默认值。

示例

birthday.

  • isDisabled:

  • 生日:对于那些用户使用空默认值,您不知道birthday.
  • isDisabled:不使用空默认值,而是将设置为0;因此,如果未设置任何内容,则不会禁用用户。由你决定,所以你不需要NULL。
票数 3
EN

Stack Overflow用户

发布于 2011-11-04 21:41:41

如果你指定它为NOT NULL,那么除非你控制输入的数据,否则你应该有一个默认值。NOT NULL表示总会有一个值,因此使用默认值是一种很好的做法。您的所有列都需要为NOT NULL吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8010036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档