Webを検索すると、過度に広いVARCHAR列を指定したときにパフォーマンスに影響があるかどうか、たとえばVARCHAR(30)がおそらくする場合のVARCHAR(255)について、矛盾したアドバイスが見つかりました。
行全体が8060バイトを超えると、パフォーマンスが低下するという合意に一貫して同意します。それ以外は、意見の相違があります。
その主張は本当The default is SET ANSI PADDING ON = potential for lots of trailing spaces
ですか?行の合計幅が8060未満である限り、VARCHAR列のサイズを大きくすることで実際のパフォーマンスの懸念はありますか?
列幅が重要であることの証拠
The same goes for CHAR and VARCHAR data types. Don’t specify more characters in character columns that you need.
http://www.sql-server-performance.com/2007/datatypes/
Length is a constraint on the data (like CHECK, FK, NULL etc)
Performance when the row exceeds 8060 bytes
Can not have unique constraint or index (key column width must be < 900)
The default is SET ANSI PADDING ON = potential for lots of trailing spaces
varchar(8000)を設定するとどのような結果になりますか?
列幅は重要ではないという証拠
If you're talking about varchar and nvarchar then no, there is no penalty for allowing a higher field length.
/programming/7025996/overstating-field-size-in-database-design
The varchar datatype, by contrast, consumes only the amount of
actual space used plus 2 bytes for overhead
http://sqlfool.com/content/PerformanceConsiderationsOfDataTypes.pdf
max
fromからを増やすことを除くnon max
)。オーバーヘッドが高いのは反対方向です。