Там в VARCHAR, CHAR, TEXT, BigText, BLOB ...Каков правильный текстовый тип данных для использования в MySQL?
Который является правильным типом данных для использования при сохранении небольших текстовых полей (то есть. Что-то вроде first_name
)?
Там в VARCHAR, CHAR, TEXT, BigText, BLOB ...Каков правильный текстовый тип данных для использования в MySQL?
Который является правильным типом данных для использования при сохранении небольших текстовых полей (то есть. Что-то вроде first_name
)?
«Правильно» - это сильное слово, но большинство людей, вероятно, будут использовать VARCHAR
. CHAR
также вариант, но он не так часто используется в моем опыте. This page объясняет разницу.
Одним из наиболее заметных различий между CHAR
и VARCHAR
в последних версиях MySQL является то, что CHAR
не способен хранить конечные пробелы (так как столбец автоматически дополняется до его максимальной длины пробелами). Поэтому, если вы храните что-то вроде 'abc '
, оно будет восстановлено как 'abc'
. Это может не иметь большого значения для большинства приложений, но это нужно иметь в виду. Аналогично, до 5.03 конечные пробелы удаляются с полей VARCHAR
перед вставкой. Поэтому, если вам нужно сохранить произвольные байтовые значения и не хотите беспокоиться о разных вариантах поведения между версиями MySQL, вы должны использовать один из типов BLOB
.
Обычно я использую VARCHAR для большинства небольших текстовых полей, если только я не знаю, что поле будет фиксированным, как аббревиатура штата США, где я бы использовал CHAR (2).