Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tại sao không sử dụng varchar (max)?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi máy chủ SQL 110:Có ít cột trong câu lệnh INSERT hơn giá trị được chỉ định trong mệnh đề VALUES.

  2. SQL-'08:Nhiều câu lệnh Replace có phải là một phương pháp không tốt không / có cách nào khác để viết truy vấn này không?

  3. Làm cách nào để chèn một bản ghi chỉ có các giá trị mặc định?

  4. PIVOT / UNPIVOT trong SQL Server 2008

  5. Chuyển đổi hiệu quả các hàng thành cột trong máy chủ sql