Я использую базу данных MySQL с Rails. Я создал поле типа string
. Существуют ли ограничения по его длине? Что относительно типа text
?
Кроме того, как text
является переменным размером, я считаю, что будут дополнительные затраты, связанные с использованием текстовых объектов. Насколько они могут быть важны, если вообще?
Существуют ли ограничения на длину строки в mysql?
Ответ 1
Строка, в общем, должна использоваться для короткого текста. Например, в MySQL существует VARCHAR(255)
.
Текст использует больший текст из базы данных, например, в MySQL, тип TEXT
.
Информацию о том, как это работает, и внутренности в MySQL и ограничениях и т.д., см. в другом ответе Пекки.
Если вы запрашиваете, скажем, абзац, я бы использовал текст. Если вы запрашиваете имя пользователя или адрес электронной почты, используйте строку.
Ответ 2
CHAR
Строка фиксированной длины, которая всегда сохраняется справа от пробелов до указанной длины при сохранении. Диапазон длины от 1 до 255 символов. При удалении значения удаляются пробелы. Значения
CHAR
сортируются и сравниваются без учета регистра в соответствии с набором символов по умолчанию, если не указано ключевое словоBINARY
.
VARCHAR
Строка переменной длины. Примечание. Пространственные пробелы удаляются при сохранении значения (это отличается от спецификации ANSI SQL)
Диапазон длины от 1 до 255 символов. ЗначенияVARCHAR
сортируются и сравниваются без учета регистра, если не указано ключевое словоBINARY
TINYBLOB, TINYTEXT
A
BLOB
илиTEXT
с максимальной длиной 255 (2 8 - 1) символов
BLOB, TEXT
A
BLOB
илиTEXT
с максимальной длиной 65535 (2 16 - 1) символов
MEDIUMBLOB, MEDIUMTEXT
A
BLOB
илиTEXT
с максимальной длиной 16777215 (2 24 - 1) символов
LONGBLOB, LONGTEXT
A
BLOB
илиTEXT
с максимальной длиной 4294967295 (2 32 - 1) символов
Подробнее см. Таблица кратких справочных данных данных MySQL.
Ответ 3
См. руководство mySQL в Строковые типы.
Varchar (String):
Значения в столбцах VARCHAR представляют собой строки переменной длины. Длина может быть указана как значение от 0 до 255 до MySQL 5.0.3 и от 0 до 65535 в 5.0.3 и более поздних версиях. Эффективная максимальная длина VARCHAR в MySQL 5.0.3 и более поздних версиях зависит от максимального размера строки (65 535 байт, которая распределяется между всеми столбцами) и используемого набора символов.
Текст: см. требования к хранилищу
Если вы хотите текстовое поле фиксированного размера, используйте CHAR
, длина которого может превышать 255 символов. VARCHAR
и TEXT
оба имеют переменную длину.