可能重复:
is there an advantage to varchar(500) over varchar(8000)?varchar(5)和varchar(5000)之间的区别?
在SQL Server中,我们可以指定字段类型varchar(n)
:
存储大小为实际长度中输入的数据字节,不是 字节。
通常规划数据库结构,当我试着想象的字符串将被存储在这些领域varchar
的最大可能的长度,然后设置想象大小+一些备份的varchar
领域。有时候可能会出现这样的情况:最初提供的房间不足以满足现场需要,然后我需要增加长度。
但实际上,是否值得将varchar
字段限制为某个值,而不是仅仅设置类似varchar(5000)
甚至varchar(max)
这将100%适合这种情况?当我限制长度为n
时,在SQL Server或索引组织中的页组织中是否有任何优势?
更新
这里是我的意思(优势):https://stackoverflow.com/a/5353196/355264
是,查询优化器可以猜出多少行适合在一个页面上,如果你 有很多大于必需的varchar字段,SQL 服务器可以在内部猜测错误的行数。
以上是真的吗?还有其他优点吗?
[varchar(500)over varchar(8000)是否有优势?](http://stackoverflow.com/questions/2009694/is-there-an-advantage-to -varchar500-over-varchar8000)或[varchar(ma x)到处?](http://stackoverflow.com/questions/2091284/varcharmax-everywhere)或[SQL Server VARCHAR列宽](http://dba.stackexchange.com/questions/11614/sql-server- varchar-column-width) – 2012-01-27 12:24:20
RE:你的编辑。看到[我的答案在这里](http://stackoverflow.com/questions/2009694/is-there-an-advantage-to-varchar500-over-varchar8000/5654947#5654947) – 2012-01-27 12:46:29