Поиск

Требования по хранению типов столбцов

Требования к хранению каждого из типов столбцов, поддерживаемых MySQL, пере­числены по категориям (табл.).
Максимальный размер строки таблицы MylSAM составляет 65534 байта. Каждый стол­бец BLOB и TEXT занимает только от пяти до девяти байт, в зависимости от размера.
Если таблицы MyISAM или ISAM содержат столбцы любых типов с переменной длиной, формат строки таблицы также будет переменной длины. При создании таблицы при не­которых условиях MySQL может изменять тип столбца с типа с фиксированной длиной на тип с переменной длиной и наоборот. См. раздел Неявные изменения спецификаций столбцов.
Типы VARCHAR, BLOB и TEXT являются типами с переменной длиной. Для каждого из них требования по хранению зависят от фактического размера значений столбцов (пред­ставленных в предыдущей таблице как L), а не от максимально возможного размера ти­па. Например, столбец типа VARCHAR( 10) может содержать строки длиной максимум в 10 символов. Фактический размер хранения складывается из длины строки (L) плюс один байт, хранящий фактическую длину. Для строки 'absd' L равно 4, и для хранения значе­ния нужно 5 байт.
Типы BLOB и TEXT требуют 1, 2, 3 или 4 байта для записи длины значения столбца, в зависимости от максимально возможной длины конкретного типа. См. раздел Тип TIME
Размер объекта типа ENUM определяется количеством различных перечислимых зна­чений. Один байт используется для перечислений, имеющих до 255 возможных значе­ний. Два байта используются для перечислений, имеющих до 65535 возможных значе­ний. См. раздел Тип YEAR

Таблица Требования по хранению для различных тпов столбцов.
Тип столбца Требования по хранению
Требования по хранению числовых типов
TINYINT ] байт
SMALLINT 2 байта
MEDIUMINT 3 байта
INT, INTEGER 4 байта
BIGINT 8 байт
FLOAT(p) 4 байта, если 0 <- р <= 24, 8 байт, если 25 <= р <= 53
FLOAT 4 байта
DOUBLE [PRECISION], REAL 8 байт
DECIMAL [M, D), NUMERIC [M, D) т-2 байт, если D> 0,M+l байт, если Я= 0 (IH-2, если М< £)

Требования по хранению типов даты и времени

DATE 3 байта
DATETIME 8 байт
TIMESTAMP 4 байта
TIME 3 байта
YEAR 1байт
Требования по хранению строковых типов
CHAR(M) Мбайт,0<=М<=255
VARCHAR(M) L+1 байт, где I <= Ми 0 <= М<= 255
TINYBLOB, TINYTEXT L+\ байт, гдеL < 28
BLOB, TEXT Ь+2байт,гдеL<216
MEDIUMBLOB, MEDIUMTEXT L+3 байт, где L< 224
LONGBLOB, LONGTEXT L+4 байт, где L < 232
ENUM('значение!', 'значение2',... ) 1 или 2 байта, в зависимости от числа допустимых значений (максимум 65535)
SET('значение!', 1значение2*, ...) 1, 2, 3,4 или 8 байт, в зависимости от числа членов набора (максимум 64)

Размер объекта типа SET определяется количеством различных членов набора. Если размер набора равен N, то объект занимает (АН-7)/8, округленное до ближайшего больше­го значения из ряда 1, 2, 3, 4 или 8, байт. SET может иметь максимум 64 члена. См. раз­дел Тип SET