Максимальная длина текста типа MySQL

Я создаю форму для отправки личных сообщений и хочу установить значение maxlength текстового поля, соответствующее максимальной длине поля text в моей таблице базы данных MySQL. Сколько символов может хранить текстовое поле типа?

Если много, могу ли я указать длину в поле типа текста базы данных, как я бы хотел с varchar?

Ответ 1

См. максимальные номера: http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

TINYBLOB, TINYTEXT       L + 1 bytes, where L < 2^8    (255 Bytes)
BLOB, TEXT               L + 2 bytes, where L < 2^16   (64 Kibibytes)
MEDIUMBLOB, MEDIUMTEXT   L + 3 bytes, where L < 2^24   (16 Mebibytes)
LONGBLOB, LONGTEXT       L + 4 bytes, where L < 2^32   (4 Gibibytes)

L - количество байтов в текстовом поле. Таким образом, максимальное число символов для текста равно 2 16 -1 (с использованием однобайтовых символов). Средство 65 535 символов (с использованием однобайтовых символов).

кодировка UTF-8/MultiByte. Используя кодировку MultiByte, каждый символ может потреблять более 1 байта пространства. Для UTF-8 потребление пространства составляет от 1 до 4 байтов на char.

Ответ 2

TINYTEXT: 256 байт
ТЕКСТ: 65,535 байт
MEDIUMTEXT: 16,777,215 байт
LONGTEXT: 4 294 967 295 байт.

Ответ 3

Type       | Approx. Length     | Exact Max. Length Allowed
-----------------------------------------------------------
TINYTEXT   | 256 Bytes          | 255 characters
TEXT       | 64  Kilobytes      | 65,535 characters
MEDIUMTEXT | 16  Megabytes      | 16,777,215 characters
LONGTEXT   | 4   Gigabytes      | 4,294,967,295 characters

Примечание. Если вы используете многобайтовые символы, столбец "Точное максимальное допустимое значение длины" будет иметь разную длину. Например: если вы используете двухбайтовые символы, точная максимальная длина для TINYTEXT будет 127 символов. В принципе, это число байтов, разрешенных -1.

Ответ 4

В соответствии с http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html предел равен L + 2 bytes, where L < 2^16 или 64k.

Вам не нужно ограничиваться этим, он автоматически разбивается на куски, которые добавляются по мере роста строки, поэтому он не всегда будет слепо использовать 64k.

Ответ 5

Сколько символов может хранить текстовое поле типа?

Согласно Документация Вы можете использовать максимум 21 844 символа, если кодировка UTF8

Если много, могу ли я указать длину в поле типа текста db, как я бы хотел с varchar?

Вам не нужно указывать длину. Если вам нужны другие типы данных использования символов MEDIUMTEXT или LONGTEXT. С VARCHAR длина спецификаций не относится к требованию Storage, но только для того, как данные извлекаются из базы данных.

Ответ 6

TINYTEXT 256 bytes
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
LONGTEXT 4,294,967,295 bytes ~4GB

TINYTEXT - строковый тип данных, который может хранить до 255 символов.

TEXT - это строковый тип данных, который может хранить до 65,535 символов. TEXT обычно используется для кратких статей.

LONGTEXT - строковый тип данных с максимальной длиной 4,294,967,295 символов. Используйте LONGTEXT, если вам нужно сохранить большой текст, например главу романа.

Ответ 7

TEXT - это строковый тип данных, который может хранить до 65 535 символов. Но если вы хотите сохранить больше данных, измените его тип данных на LONGTEXT

ALTER TABLE name_tabel CHANGE text_field LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;