Câu trả lời của tôi cho vấn đề này, không phải về việc sử dụng Max, mà là về lý do VARCHAR (max) so với TEXT.
Trong cuốn sách của tôi; trước hết, trừ khi bạn có thể hoàn toàn chắc chắn rằng bạn sẽ không bao giờ mã hóa bất cứ thứ gì ngoài văn bản tiếng Anh và mọi người sẽ không đề cập đến tên của các địa điểm nước ngoài, khi đó bạn nên sử dụng NVARCHAR hoặc NTEXT.
Thứ hai, đó là những gì các trường cho phép bạn làm.
TEXT khó cập nhật so với VARCHAR, nhưng bạn có được lợi thế của Lập chỉ mục toàn văn bản và rất nhiều thứ thông minh.
Mặt khác, VARCHAR (MAX) có một số không rõ ràng, nếu kích thước của ô <8000 ký tự, nó sẽ được coi là dữ liệu Hàng. Nếu nó lớn hơn, nó sẽ được coi là LOB cho mục đích lưu trữ.Bởi vì bạn không thể biết điều này nếu không truy vấn RBAR, điều này có thể có các chiến lược tối ưu hóa cho những nơi bạn cần chắc chắn về dữ liệu của mình và chi phí cho bao nhiêu lần đọc.
Mặt khác, nếu việc sử dụng của bạn tương đối nhàm chán và bạn không mong muốn gặp vấn đề với kích thước dữ liệu (IE bạn đang sử dụng .Net và do đó không phải lo lắng về kích thước của các đối tượng string / char * của bạn) thì sử dụng VARCHAR (max) là tốt.