我想在名为“Isdeleted”的用户表中添加一个新列,它只能有两个值(Y,N)。但是我可以用于此列的最佳数据类型是什么。我在想添加一个varchar(1)? ,但是有更好的数据类型可以满足我的需求吗? BR
答案 0 :(得分:1)
BIT
怎么样?只能是0
(= false),1
(= true)或NULL
(如果允许;未确定)。一个字节内最多可以存储8个BIT
。
VARCHAR(1)
非常糟糕因为它会为每列使用1-3个字节的存储空间。
如果您想使用基于字符的列类型 - 请务必使用CHAR(1)
(不 varchar!)。对于单个字符,可变长度存储的所有开销(至少每个字节2个字节!)绝对浪费....这适用于所有非常短的字符串 - 例如3字符ISO国家或货币代码等 - 那些最佳存储在固定的CHAR(n)
数据类型列中