我们有一个非常大的历史表,其中包含一个最多包含500个UTF8字符的列,并且磁盘空间增长非常快!
我们每天至少有两百万行……我们想知道哪一个会做得更好(主要是在存储方面,但在性能方面也是如此)?TEXT或VARCHAR(512)?
发布于 2010-11-09 06:20:59
从存储和性能的角度来看,VARCHAR可能更适合您的情况。查看此oft-reposted article。
发布于 2010-11-09 06:21:16
This是有用的信息;我认为一般来说,答案是varchar通常是更好的选择。
发布于 2010-11-09 06:24:07
从MySQL手册中:
在大多数情况下,您可以将BLOB列视为
列,它可以随您的需要而变得更大。类似地,您可以将TEXT列视为VARCHAR列。BLOB和TEXT在以下方面不同于VARBINARY和VARCHAR:
对于BLOB和TEXT列,when值不能删除尾随空格
被存储或检索。在MySQL 5.0.3之前,这与VARBINARY和VARCHAR值不同,后者在存储值时将删除尾随空格。
在比较时,文本被空间扩展以适合所比较的对象,
就像CHAR和VARCHAR一样。
对于BLOB和TEXT列的索引,必须指定索引
前缀长度。对于CHAR和VARCHAR,前缀长度是可选的。请参阅第7.5.1节,“列索引”。
BLOB和TEXT列不能有默认值。
https://stackoverflow.com/questions/4128626
复制相似问题