Char và Varchar là các kiểu dữ liệu ký tự thường được sử dụng trong hệ thống cơ sở dữ liệu trông giống nhau mặc dù có sự khác biệt giữa chúng khi có yêu cầu lưu trữ. Trong thiết kế cơ sở dữ liệu, có rất nhiều loại dữ liệu được sử dụng. Trong số đó, các kiểu dữ liệu ký tự có một vị trí nổi bật hơn vì chúng được sử dụng để lưu trữ nhiều thông tin so với số. Các kiểu dữ liệu ký tự được sử dụng để lưu trữ các ký tự hoặc dữ liệu chữ và số trong chuỗi. Loại bộ ký tự cơ sở dữ liệu được xác định khi tạo cơ sở dữ liệu. Một lần nữa, trong số các kiểu dữ liệu ký tự này, Char và Varchar là những kiểu thường được sử dụng. Bài viết này giải thích hai loại dữ liệu này, char và varchar, và sự khác biệt giữa chúng.
Định nghĩa ISO của char là một tính cách và kiểu dữ liệu char là đã từng lưu trữ một nhân vật. Char (n) có thể lưu trữ n kích thước cố định của các ký tự. Số lượng ký tự tối đa mà char (n) có thể giữ là 255 ký tự và độ dài chuỗi phải có giá trị từ 1 đến 8000. Char nhanh hơn năm mươi phần trăm so với varchar và do đó, chúng ta có thể có hiệu suất tốt hơn khi làm việc với char Char sử dụng cấp phát bộ nhớ tĩnh khi lưu trữ dữ liệu. Khi chúng ta muốn lưu trữ các chuỗi có độ dài cố định đã biết, tốt hơn là sử dụng char. Ví dụ: khi lưu trữ 'Có' và 'Không' dưới dạng 'Y' và 'N', chúng ta có thể sử dụng kiểu dữ liệu char. Và cũng như khi lưu trữ số chứng minh nhân dân của một người với mười ký tự, chúng ta có thể sử dụng kiểu dữ liệu là char (10).
Như tên cho thấy, varchar được gọi là nhân vật biến. Varchar được sử dụng để lưu trữ dữ liệu chữ và số có độ dài thay đổi. Số lượng ký tự tối đa mà loại dữ liệu này có thể chứa là 4000 ký tự và kích thước lưu trữ tối đa là 2 GB. Kích thước lưu trữ của varchar là chiều dài thực tế của dữ liệu cộng với hai byte. Varchar chậm hơn char và nó sử dụng cấp phát bộ nhớ động khi lưu trữ dữ liệu. Chúng ta có thể sử dụng varchar khi lưu trữ dữ liệu như tên, địa chỉ, mô tả, v.v. Không chỉ các chuỗi, mà cả các loại không phải chuỗi như kiểu ngày tháng, 2015, ngày 12 tháng 3 năm 2015, cũng có thể được lưu trữ trong kiểu dữ liệu varchar.
• Mặc dù char và varchar là các trường dữ liệu ký tự, char là trường dữ liệu có độ dài cố định và varchar là trường dữ liệu có kích thước thay đổi.
• Char chỉ có thể lưu trữ các ký tự chuỗi không phải Unicode có kích thước cố định, nhưng varchar có thể lưu trữ các kích thước biến đổi của chuỗi.
• Char tốt hơn varchar cho dữ liệu thường xuyên thay đổi. Điều này là do hàng dữ liệu có độ dài cố định không dễ bị phân mảnh.
• Char sẽ chỉ chiếm không gian cố định được xác định khi khai báo biến. Nhưng varchar sẽ chiếm không gian dựa trên dữ liệu được chèn và cũng sẽ chiếm 1 hoặc 2 byte làm tiền tố độ dài.
• Nếu dữ liệu nhỏ hơn 255 ký tự, 1 byte được phân bổ và nếu dữ liệu lớn hơn 255 ký tự thì 2 byte được bảo lưu. Nếu chúng ta sử dụng char để lưu trữ cờ 'Y' và 'N', nó sẽ sử dụng một byte để lưu trữ, nhưng khi chúng ta sử dụng varchar, sẽ mất hai byte để lưu trữ cờ bao gồm một byte thêm làm tiền tố độ dài.
Tóm lược:
Char và varchar là kiểu dữ liệu ký tự được sử dụng nhiều nhất có sẵn trong cơ sở dữ liệu. Char được sử dụng để lưu trữ một chuỗi có độ dài cố định trong khi varchar được sử dụng để lưu trữ các chuỗi có độ dài khác nhau. Để có được hiệu suất tốt hơn từ dữ liệu, điều quan trọng hơn là chọn loại dữ liệu chính xác cho các trường của các bảng trong cơ sở dữ liệu của bạn. Sẽ thuận tiện hơn khi sử dụng các loại dữ liệu nhỏ nhất có thể lưu trữ dữ liệu một cách chính xác, vì chúng chiếm ít không gian hơn từ bộ nhớ.
Hình ảnh lịch sự: Varchar qua Wikicommons (Miền công cộng)