可能重複:
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