有人知道使用VarChar(255)和VarChar(65536)之间的区别吗?
以下是我现在所知道的:
- VarChar(255) 只使用一个字节的大小。
- VarChar(65536) 将使用两个字节的大小。
- VarChar(65536) 只存在于MySQL 5.0.3之后。
- MySQL在255和65536之间使用不同的处理方式(虽然不知道差异)。
我不确定是否有任何性能差异。
假设我想要创建一个包含多种类型行的表格。使用枚举类型'data_type1'和'data_type2'
'data_type1' varchar 的长度永远不会超过255个字符。 'data_type2' varchar 的长度大多数情况下会超过255个字符。
哪种解决方案的表格更好呢?
id (int) - autoincrement
type (enum : data_type1, data_type2)
msg (varchar(255))
data (TEXT)
当type等于data_type2时,是否只使用"data"列?
或者
id (int) - autoincrement
type (enum : data_type1, data_type2)
msg (varchar(65536))
无论什么类型,都可以使用“msg”列?
实际上,在两种解决方案中都需要type列以进行处理。
编辑:
当type == data_type2时,存储的数据实际上永远不会超过10000个字符
编辑2:
我不想在msg和data列中进行搜索
这是有关存储性能的简单问题,与索引或搜索性能无关...