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

Anonim

Varchar vs Nvarchar

Varchar là một tên ngắn cho Variable Character Field. Các ký tự đại diện cho dữ liệu có chiều 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ể thay đổi, 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 có giới hạn 8000. Con số này có thể cao hơn trong máy chủ Microsoft SQL khi Varchar (max) được sử dụng, tăng lên đến 2 gigabyte. Nvarchar, mặt khác, là một cột có thể lưu trữ bất kỳ chiều dài của dữ liệu Unicode. Các trang mã mà Nvarchar phải tuân thủ là một mã hóa 8 bit. Kích thước tối đa của Varchar là 8000 trong khi kích thước tối đa của 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 của Nvarchar có thể là 4000 ký tự. Vượt quá các giá trị cột trở thành một vấn đề rất lớn và thậm chí có thể gây ra các vấn đề nghiêm trọng vì các hàng không thể mở rộng nhiều trang, ngoại trừ máy chủ SQL 2005, và phải tuân thủ các giới hạn hoặc lỗi hoặc truncation sẽ cho kết quả …

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 ở Varchar. Điều này là do Nvarchar sử dụng Unicode, vì sự phức tạp của việc mã hóa 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à những gì có thể làm cho 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 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 không gian, 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 trang mã là một sự đau đớn để giải quyết bằng tay.

Do đó không gian tính năng có thể được bỏ qua trong ưu tiên cho thời gian ngắn hơn cần Unicode để khắc phục sự không tương thích phát sinh. Ngoài ra, chi phí của đĩ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 lâu hơn để giải quyết vấn đề phát sinh với Varchar không thể được miễn nhiệm một cách dễ dàng.

Tất cả các nền tảng phát triển sử dụng hệ điều hành hiện đại trong nội bộ, 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. Mã hóa chuyển đổi được tránh, giảm thời gian cần để đọc và ghi vào cơ sở dữ liệu. Điều này cũng làm giảm đáng kể lỗi, với sự phục hồi của các lỗi chuyển đổi mà xảy ra trở thành một vấn đề đơn giản để giải quyết.

Lợi ích của việc sử dụng Unicode cũng áp dụng cho những người sử dụng các 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à các 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 có thể luôn được xác nhận, nếu bị giới hạn trong một ASCII 7 bit, bất kể hệ thống kế thừa phải được duy trì.

Tóm tắt

Varchar và Nvarchar có các loại nhân vật khác nhau. Varchar sử dụng dữ liệu không phải là Unicode trong khi Nvarchar sử dụng dữ liệu Unicode.

Cả Varchar và Nvarchar đều có các loại dữ liệu khác nhau phải tuân thủ. Varchar chỉ lưu dữ liệu trong một 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 thay đổi. Chiều dài Varchar 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 là đơn giản hơn so với dữ liệu Unicode được sử dụng bởi Nvarchar.