Sự khác nhau giữa varchar và char trong MySQL
Thứ Sáu, 01/09/2023 · 3 phút đọc
Trong MySQL, VARCHAR
và CHAR
đều là kiểu dữ liệu chuỗi dùng để lưu trữ các giá trị văn bản. Mặc dù cả hai kiểu này dùng để lưu trữ chuỗi ký tự, nhưng có sự khác biệt quan trọng về cách lưu trữ và sử dụng bộ nhớ.
CHAR:
CHAR
là một kiểu dữ liệu chuỗi có độ dài cố định. Điều này có nghĩa là khi bạn định nghĩa một cộtCHAR
, bạn phải xác định độ dài cố định cho chuỗi, ví dụ:CHAR(10)
là một cột có độ dài cố định là 10 ký tự.- Dữ liệu được lưu trữ dưới dạng một chuỗi có độ dài cố định, vì vậy nếu bạn lưu trữ một chuỗi ngắn hơn độ dài đã xác định, MySQL sẽ thêm khoảng trắng để điền đầy cho đến độ dài cố định.
CHAR
thường được sử dụng cho các trường dữ liệu có độ dài cố định như mã số thuế, số điện thoại, zip code, v.v.
Ví dụ: Nếu bạn lưu trữ giá trị “abc” trong cột CHAR(10)
, nó sẽ được lưu dưới dạng “abc ” (với khoảng trắng thừa để đạt độ dài 10).
VARCHAR:
VARCHAR
là một kiểu dữ liệu chuỗi có độ dài biến đổi. Khi bạn định nghĩa một cộtVARCHAR
, bạn chỉ cần xác định độ dài tối đa cho chuỗi, ví dụ:VARCHAR(255)
cho phép chuỗi có độ dài tối đa là 255 ký tự.- Dữ liệu được lưu trữ dưới dạng chuỗi có độ dài thực tế, không có khoảng trắng thừa.
VARCHAR
thường được sử dụng cho các trường dữ liệu có độ dài biến đổi như tên, địa chỉ, mô tả, v.v.
Ví dụ:
CREATE TABLE company ( char_column CHAR(10), varchar_column VARCHAR(255) );
Nếu bạn lưu trữ giá trị “abc” trong cột char_column
, nó sẽ được lưu dưới dạng “abc ” (với khoảng trắng thừa để đạt độ dài 10). Trong khi đó, nếu bạn lưu trữ giá trị “abc” trong cột varchar_column
, nó sẽ được lưu dưới dạng “abc” (không có khoảng trắng thừa).
Sự lựa chọn giữa CHAR
và VARCHAR
phụ thuộc vào loại dữ liệu bạn lưu trữ và yêu cầu về quản lý bộ nhớ của bạn. Nếu bạn biết độ dài tối đa của dữ liệu và nó không thay đổi, thì CHAR
có thể hiệu quả hơn về mặt bộ nhớ. Tuy nhiên, nếu độ dài dữ liệu biến đổi, thì VARCHAR
thường là sự lựa chọn phù hợp hơn.
- Ảnh đại diện bài viết -