Tìm kiếm trên web, tôi đã tìm thấy lời khuyên mâu thuẫn về việc liệu có tác động hiệu suất khi chỉ định các cột VARCHAR quá rộng, ví dụ VARCHAR (255) khi VARCHAR (30) có thể sẽ làm.
Tôi luôn thấy thỏa thuận rằng có một hiệu năng đạt được nếu toàn bộ hàng vượt quá 8060 byte. Khác hơn thế, tôi thấy bất đồng.
Là yêu cầu đúng sự thật The default is SET ANSI PADDING ON = potential for lots of trailing spaces
? Miễn là tổng chiều rộng của hàng nhỏ hơn 8060, có bất kỳ mối quan tâm hiệu suất thực sự nào trong các cột VARCHAR quá cỡ không?
Bằng chứng là chiều rộng cột quan trọng
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
Hậu quả của việc thiết lập varchar (8000) là gì?
Bằng chứng là chiều rộng cột KHÔNG quan trọng
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
từnon max
). Đó là hướng ngược lại có chi phí cao hơn.