Каково различие между VARCHAR и CHAR?

Как другие заявили, шаблон "команда" является очень мощным методом реализации Отмены/Восстановления. Но существует важное преимущество, которое я хотел бы упомянуть шаблону "команда".

При реализации отмены/восстановления с помощью шаблона "команда", можно избежать больших сумм дублированного кода путем абстракции (в известной степени) операций, выполненных на данных, и использовать те операции в системе отмены/восстановления. Например, в вырезанном и вставленном текстовом редакторе дополнительные команды (кроме управления буфером обмена). Другими словами, операция отмены для сокращения является вставкой, и операция отмены для вставки сокращается. Это относится к намного более простым операциям как к вводящему и удаляющему тексту.

ключ здесь - то, что можно использовать систему отмены/восстановления в качестве основной системы команд для редактора. Вместо того, чтобы писать систему те, которые "создают объект отмены, измените документ", можно "создать объект отмены, выполнить операцию восстановления на объекте отмены изменить документ".

Теперь, по общему признанию, многие люди думают себе "Хорошо понятное дело, не часть точки шаблона "команда"?" Да, но я видел слишком много систем команд, которые имеют два набора команд, один для непосредственных операций и другого набора для отмены/восстановления. Я не говорю, что не будет команд, которые характерны для непосредственных операций и отмены/восстановления, но сокращение дублирования сделает код более удобным в сопровождении.

339
задан OMG Ponies 10 December 2009 в 17:36
поделиться

7 ответов

VARCHAR имеет переменную длину.

CHAR имеет фиксированную длину.

Если ваш контент имеет фиксированный размер, вы получите лучшую производительность с CHAR .

См. Страницу MySQL на Типы CHAR и VARCHAR для подробного объяснения (обязательно прочтите также комментарии).

337
ответ дан 23 November 2019 в 00:36
поделиться

CHAR Vs VARCHAR

CHAR используется для переменной размера фиксированной длины
VARCHAR используется для переменной размера переменной длины.

Например

Create table temp
(City CHAR(10),
Street VARCHAR(10));

Insert into temp
values('Pune','Oxford');

select length(city), length(street) from temp;

Вывод будет

length(City)          Length(street)
10                    6

Заключение: для эффективного использования пространства хранения необходимо использовать VARCHAR вместо CHAR, если переменная длина является переменной

116
ответ дан 23 November 2019 в 00:36
поделиться

In most RDBMSs today, they are synonyms. However for those systems that still have a distinction, a CHAR field is stored as a fixed-width column. If you define it as CHAR(10), then 10 characters are written to the table, where "padding" (typically spaces) is used to fill in any space that the data does not use up. For example, saving "bob" would be saved as ("bob"+7 spaces). A VARCHAR (variable character) column is meant to store data without wasting the extra space that a CHAR column does.

As always, Wikipedia speaks louder.

7
ответ дан 23 November 2019 в 00:36
поделиться

CHAR is a fixed length field; VARCHAR is a variable length field. If you are storing strings with a wildly variable length such as names, then use a VARCHAR, if the length is always the same, then use a CHAR because it is slightly more size-efficient, and also slightly faster.

5
ответ дан 23 November 2019 в 00:36
поделиться

CHAR is fixed length and VARCHAR is variable length. CHAR always uses the same amount of storage space per entry, while VARCHAR only uses the amount necessary to store the actual text.

1
ответ дан 23 November 2019 в 00:36
поделиться

A CHAR(x) column can only have exactly x characters.
A VARCHAR(x) column can have up to x characters.

Since your MD5 hashes will always be the same size, you should probably use a CHAR.

However, you shouldn't be using MD5 in the first place; it has known weaknesses.
Use SHA2 instead.
If you're hashing passwords, you should use bcrypt.

62
ответ дан 23 November 2019 в 00:36
поделиться

char - это символьный тип данных фиксированной длины, varchar - символьный тип данных переменной длины.

Поскольку char является типом данных фиксированной длины, размер хранилища Значение char равно максимальному размеру этого столбца. Поскольку varchar является типом данных переменной длины, размер хранения значения varchar - это фактическая длина введенных данных, а не максимальный размер для этого столбца.

Вы можете использовать char, когда ожидаются записи данных в столбце. быть одинакового размера. Вы можете использовать varchar, когда ожидается, что записи данных в столбце будут значительно различаться по размеру.

1
ответ дан 23 November 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: