Tôi chỉ đọc câu trả lời được chấp nhận là this question, để lại cho tôi câu hỏi này.Có điểm nào trong việc sử dụng CHAR nếu bạn có VARCHAR trong cùng một bảng không?
Dưới đây là một trích dẫn từ câu trả lời rằng:
"Nhưng kể từ khi bạn gắn thẻ câu hỏi này với MySQL, tôi sẽ đề cập đến một mẹo MySQL cụ thể: khi truy vấn của bạn mặc nhiên tạo ra một bảng tạm thời, ví dụ khi sắp xếp hoặc GROUP BY
Các trường VARCHAR
được chuyển đổi thành CHAR
để đạt được lợi thế khi làm việc với các hàng có chiều rộng cố định. Nếu bạn sử dụng rất nhiều trường VARCHAR(255)
cho dữ liệu không cần nhiều thời gian, điều này có thể làm cho bảng tạm thời rất lớn. "
Như tôi đã hiểu, lợi thế của CHAR
là bạn nhận được các hàng có chiều rộng cố định, do đó, không phải là VARCHAR
trong cùng một bảng lộn xộn lên? Có lợi thế nào khi sử dụng CHAR
khi bạn có một số VARCHAR
trong cùng một bảng không?
Dưới đây là một ví dụ:
Bảng với CHAR
:
CREATE TABLE address (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
street VARCHAR(100) NOT NULL,
postcode CHAR(8) NOT NULL,
PRIMARY KEY (id)
);
Bảng mà không CHAR
:
CREATE TABLE address (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
street VARCHAR(100) NOT NULL,
postcode VARCHAR(8) NOT NULL,
PRIMARY KEY (id)
);
bảng với CHAR
sẽ thực hiện bất kỳ tốt hơn so với bảng mà không CHAR
và nếu có, trong những gì tình huống?
Có thể trùng lặp - http://stackoverflow.com/questions/3408930/does-anyone-have-considerable-proof-that-char-is-faster-than-varchar – ocodo
Bảng 'char' sẽ sử dụng ít không gian hơn, bởi vì nó không có trường thừa cho "độ dài của chuỗi mã bưu điện" trong mọi bản ghi. –
@ Slomojo: Câu hỏi đó là về việc liệu có bất kỳ lợi thế nào của 'CHAR' chút nào và đó không phải là điều tôi đang yêu cầu. –