我收到了创建一个新表的请求,该表将为客户存储某些信息。除了一个字段外,表的定义有些无关紧要。该字段将存储从终端屏幕检索到的 ANSI 字符。
一开始会有大约 5000 万行,最初,我们估计该字段需要 <= 7,500 个字符,所以我选择使用VARCHAR(8000)
数据类型。经过更多分析,我们确定 3000 万行中大约 90% 将 <= 8000,但另外 10% 将 <= 15,000。
VARCHAR
由于 8,000 的限制,我显然不能使用它,所以我认为我唯一的选择是text
数据类型。我担心“文本”的开销,它最终可能会被删除。我现在正在研究VARCHAR(max)
,但我从未在生产环境中使用过它。
我应该使用varchar(max)
、text
还是寻找一种方法来压缩那 10% 的数据并将其存储在varchar(8000)
.