Я только что прочитал принятый ответ на этот вопрос , который оставил мне этот вопрос.
Вот цитата из этого ответа:
"Но так как вы пометилиВ этом вопросе о MySQL я упомяну специфический для MySQL совет: когда ваш запрос неявно генерирует временную таблицу, например, во время сортировки или поля GROUP BY
, VARCHAR
преобразуются в CHAR
, чтобы получить преимущество работы сстроки фиксированной ширины. Если вы используете много полей VARCHAR(255)
для данных, которые не должны быть такими длинными, это может сделать временную таблицу очень большой. "
Насколько я понимаю, преимуществоиз CHAR
- это то, что вы получаете строки фиксированной ширины, так что VARCHAR
в той же самой таблице запутался?Есть ли преимущества использования CHAR
, если у вас есть VARCHAR
в той же таблице?
Вот пример:
Таблица с CHAR
:
CREATE TABLE address (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
street VARCHAR(100) NOT NULL,
postcode CHAR(8) NOT NULL,
PRIMARY KEY (id)
);
Таблица без CHAR
:
CREATE TABLE address (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
street VARCHAR(100) NOT NULL,
postcode VARCHAR(8) NOT NULL,
PRIMARY KEY (id)
);
Будет ли таблица с CHAR
работать лучше таблицы без CHAR
, и если да, то в каких ситуациях?