enum('yes', 'no') 与tinyint——使用哪一个?
对于包含真/假值的字段,最佳实践是什么?
此类列可以定义为 enum('yes','no') 或tinyint(1)。一个比另一个更好/更快吗?
使用 enum('1','0') 与 enum('yes','no') 是否更好(即,它是否将 'yes' 或 'no' 作为字符串写入每一行,以便数据库存储尺寸变大)?
What's the best practice for fields that hold true/false values?
Such columns can be defined as enum('yes','no') or as tinyint(1). Is one better/faster than the other?
Is it better to use enum('1','0') vs. enum('yes','no') (i.e., does it write 'yes' or 'no' as a string to every row so the database storage size gets bigger)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
避免使用枚举原因
avoid enum from this reasons
BOOLEAN
类型的存在是有原因的。它确实是一个TINYINT(1)
但既然它在那里,它一定是推荐的方式。BOOLEAN
type is there for a reason. It is indeed aTINYINT(1)
but since it's there, it must be the recommended way.另外,
ENUM
是一个非标准的 MySql 扩展。您应该避免它,特别是如果您可以通过标准方式获得相同的结果。Also,
ENUM
is a non-standard MySql extension. You should avoid it, especially if you can achieve the same results in a standard way.