Sự khác biệt giữa Varchar và Nvarchar

Varar vs Nvarchar

Varchar là tên viết tắt của Trường ký tự biến. Các ký tự đại diện cho dữ liệu có độ dài không xác định. Varchar theo nghĩa thực tế là một loại cột dữ liệu được tìm thấy trong các hệ thống quản lý cơ sở dữ liệu. Kích thước trường của các cột Varchar có thể khác nhau, tùy thuộc vào cơ sở dữ liệu đang được xem xét.

Trong Oracle 9i, trường có giới hạn tối đa 4000 ký tự. MySQL có giới hạn dữ liệu là 65.535 cho một hàng và máy chủ Microsoft SQL 2005 đi kèm với giới hạn trường là 8000. Con số này có thể tăng cao hơn trong máy chủ Microsoft SQL khi sử dụng Varchar (tối đa), tăng lên 2 gigabyte. Nvarchar, mặt khác, là một cột có thể lưu trữ bất kỳ độ dài nào của dữ liệu Unicode. Bảng mã mà Nvarchar phải tuân thủ là mã 8 bit. Kích thước tối đa cho Varchar là 8000 trong khi kích thước tối đa cho NVarchar là 4000. Điều này có nghĩa là một cột Varchar có thể có tối đa 8000 ký tự và một cột Nvarchar có thể nhiều nhất là 4000 ký tự. Vượt quá các giá trị cột trở thành một vấn đề lớn và thậm chí có thể gây ra sự cố nghiêm trọng vì các hàng không thể trải rộng trên nhiều trang, ngoại trừ máy chủ SQL 2005 và giới hạn phải được tuân thủ hoặc lỗi hoặc cắt bớt sẽ dẫn đến lỗi

Một trong những khác biệt chính giữa Varchar và Nvarchar là việc sử dụng ít không gian hơn trong Varchar. Điều này là do Nvarchar sử dụng Unicode, do rắc rối trong việc mã hóa các chi tiết cụ thể, chiếm nhiều không gian hơn. Đối với mỗi ký tự được lưu trữ, Unicode yêu cầu hai byte dữ liệu và đây là yếu tố có thể khiến giá trị dữ liệu trông cao hơn khi so sánh với dữ liệu không phải là Unicode mà Varchar sử dụng. Mặt khác, Varchar chỉ yêu cầu một byte dữ liệu cho mỗi và mọi ký tự được lưu trữ. Tuy nhiên, quan trọng hơn, mặc dù việc sử dụng Unicode chiếm nhiều dung lượng hơn, nhưng nó giải quyết được các vấn đề phát sinh với sự không tương thích của codepage vốn là một vấn đề khó giải quyết bằng tay.

Do đó, tính năng không gian có thể bị bỏ qua trong ưu tiên trong thời gian ngắn hơn để sử dụng Unicode để khắc phục sự không tương thích phát sinh. Ngoài ra, chi phí cho đĩa và bộ nhớ cũng trở nên khá phải chăng, đảm bảo rằng tính năng không gian thường có thể bị bỏ qua, trong khi thời gian dài hơn để giải quyết các vấn đề phát sinh với Varchar có thể được loại bỏ dễ dàng.

Tất cả các nền tảng phát triển đều sử dụng các hệ điều hành hiện đại bên trong, cho phép Unicode chạy. Điều này có nghĩa là Nvarchar được sử dụng thường xuyên hơn Varchar. Chuyển đổi mã hóa được tránh, giảm thời gian đọc và ghi vào cơ sở dữ liệu. Điều này cũng làm giảm đáng kể các lỗi, với việc khôi phục các lỗi chuyển đổi xảy ra trở thành một vấn đề đơn giản để xử lý.

Lợi ích của việc sử dụng Unicode cũng áp dụng cho những người sử dụng giao diện ứng dụng ASCII, vì cơ sở dữ liệu đáp ứng tốt, đặc biệt là Hệ điều hành và thuật toán liên kết cơ sở dữ liệu. Dữ liệu Unicode tránh các vấn đề liên quan đến chuyển đổi và dữ liệu luôn có thể được xác thực, nếu bị giới hạn ở ASCII 7 bit, bất kể hệ thống cũ phải được duy trì.

Tóm lược

Varchar và Nvarchar đi kèm với các loại nhân vật khác nhau. Varchar sử dụng dữ liệu phi Unicode trong khi Nvarchar sử dụng dữ liệu Unicode.

Cả Varchar và Nvarchar đều có các kiểu dữ liệu khác nhau phải được tuân thủ. Varchar chỉ lưu dữ liệu theo chuỗi 1 byte và Nvarchar lưu dữ liệu trong 2 byte cho mỗi ký tự

Độ dài tối đa cũng khác nhau. Độ dài đa dạng được giới hạn ở 8000 byte và 4000 byte là giới hạn cho Nvarchar.

Điều này là do kích thước lưu trữ trong Varchar đơn giản hơn so với dữ liệu Unicode được sử dụng bởi Nvarchar.