Я создаю форму для отправки личных сообщений и хочу установить maxlength
значение текстовой области, соответствующее максимальной длине text
поля в моей таблице базы данных MySQL. Сколько символов может хранить текстовое поле типа?
Если много, смогу ли я указать длину в поле типа текста базы данных, как я бы с varchar?
Ответы:
См. Максимальное количество: http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html
L - количество байтов в вашем текстовом поле. Таким образом, максимальное количество символов для текста составляет 2 16 -1 (с использованием однобайтовых символов). Означает 65 535 символов (с использованием однобайтовых символов).
Кодировка UTF-8 / MultiByte : при использовании кодирования MultiByte каждый символ может занимать более 1 байта пространства. Для UTF-8 потребление пространства составляет от 1 до 4 байтов на символ.
источник
TINYTEXT: 256 байт.
TEXT: 65 535 байт.
MEDIUMTEXT: 16 777
215 байт. LONGTEXT: 4 294 967 295 байт.
источник
Примечание. Если используются многобайтовые символы (например, арабский, где каждый арабский символ занимает 2 байта), столбец «Максимальная допустимая длина»
TINYTEXT
может содержать до 127 арабских символов (Примечание: пробел, тире, подчеркивание и другие подобные символы). , являются 1-байтовыми символами).По сути, это как:
«Максимальная допустимая длина» = «Приблизительная длина» в байтах - 1
источник
Согласно http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html , ограничение составляет
L + 2 bytes, where L < 2^16
или 64 КБ.Вам не нужно беспокоиться об ограничении этого, оно автоматически разбивается на куски, которые добавляются по мере роста строки, поэтому она не всегда будет слепо использовать 64 КБ.
источник
Согласно документации вы можете использовать максимум 21 844 символов, если кодировка UTF8
Вам не нужно указывать длину. Если вам нужно больше символов, используйте типы данных MEDIUMTEXT или LONGTEXT. В случае VARCHAR заданная длина не для требований к хранилищу, а только для способа извлечения данных из базы данных.
источник
TINYTEXT
является строковым типом данных, который может хранить до255
символов.TEXT
строковый тип данных, который может хранить до65,535
символовTEXT
обычно используется для кратких статей.LONGTEXT
является строковым типом данных с максимальной длиной4,294,967,295
символов. Используйте,LONGTEXT
если вам нужно хранить большой текст, например главу романа.источник
TEXT
это строковый тип данных, который может хранить до 65 535 символов. Но все же, если вы хотите сохранить больше данных, измените их тип данных наLONGTEXT
ALTER TABLE
name_tabel
CHANGEtext_field
LONGTEXT CHARACTER SETutf8
COLLATEutf8_general_ci
NOT NULL;источник
Для версии MySql 8.0.
Требования к хранению числового типа
Значения для столбцов DECIMAL (и NUMERIC) представлены в двоичном формате, который упаковывает девять десятичных (основание 10) цифр в четыре байта. Хранение для целой и дробной частей каждого значения определяется отдельно. Каждому кратному из девяти цифр требуется четыре байта, а оставшимся цифрам требуется некоторая доля четырех байтов. Объем памяти, необходимый для избыточных цифр, указан в следующей таблице.
Требования к хранилищу типа даты и времени Для столбцов TIME, DATETIME и TIMESTAMP, хранилище, необходимое для таблиц, созданных до MySQL 5.6.4, отличается от таблиц, созданных с 5.6.4 и далее. Это связано с изменением в 5.6.4, которое позволяет этим типам иметь дробную часть, что требует от 0 до 3 байтов.
Начиная с MySQL 5.6.4, хранилище для ГОДА и ДАТЫ остается неизменным. Однако TIME, DATETIME и TIMESTAMP представлены по-разному. DATETIME упаковывается более эффективно, требуя 5, а не 8 байтов для нефракционной части, и все три части имеют дробную часть, которая требует от 0 до 3 байтов, в зависимости от точности сохраненных значений в долях секунды.
Например, TIME (0), TIME (2), TIME (4) и TIME (6) используют 3, 4, 5 и 6 байтов соответственно. ВРЕМЯ и ВРЕМЯ (0) эквивалентны и требуют одинакового хранения.
Для получения подробной информации о внутреннем представлении временных значений, см. MySQL Internals: Важные алгоритмы и структуры.
Требования к хранению строкового типа В следующей таблице M представляет объявленную длину столбца в символах для недвоичных строковых типов и байтов для двоичных строковых типов. L представляет фактическую длину в байтах данного строкового значения.
источник