Требования к объему памяти для столбцов каждого типа, поддерживаемого MySQL, перечислены ниже по категориям.
Требования к памяти для числовых типов
| Тип столбца | Требуемая память |
TINYINT |
1 byte |
SMALLINT |
2 байта |
MEDIUMINT |
3 байта |
INT |
4 байта |
INTEGER |
4 байта |
BIGINT |
8 байтов |
FLOAT(X) |
4, если X <= 24 или 8, если 25 <= X <= 53 |
FLOAT |
4 байта |
DOUBLE |
8 байтов |
DOUBLE PRECISION |
8 байтов |
REAL |
8 байтов |
DECIMAL(M,D) |
M+2 байт, если D > 0,
M+1 байт, если D = 0
(D+2, если M <
D) |
NUMERIC(M,D) |
M+2 байт, если D > 0,
M+1 байт, если D = 0
(D+2, если M <
D) |
Требования к памяти для типов даты и времени
| Тип столбца | Требуемая память |
DATE |
3 байта |
DATETIME |
8 байтов |
TIMESTAMP |
4 байта |
TIME |
3 байта |
YEAR |
1 байт |
Требования к памяти для символьных типов
| Тип столбца | Требуемая память |
CHAR(M) |
M байт, 1 <= M <= 255
|
VARCHAR(M) |
L+1 байт, где L <= M и
1 <= M <= 255
|
TINYBLOB, TINYTEXT
|
L+1 байт, где L < 2^8 |
BLOB, TEXT
|
L+2 байт, где L < 2^16 |
MEDIUMBLOB, MEDIUMTEXT
|
L+3 байт, где L < 2^24 |
LONGBLOB, LONGTEXT
|
L+4 байт, где L < 2^32 |
ENUM('value1','value2',...) |
1 или 2 байт, в зависимости от количества перечисляемых величин (максимум 65535) |
SET('value1','value2',...) |
1, 2, 3, 4 или 8 байт, в зависимости от количества элементов множества (максимум 64) |
VARCHAR, BLOB и
TEXT являются типами
данных с переменной длиной строки,
для таких типов требования к
памяти в общем случае определяются
реальным размером величин в
столбце (представлен символом
L в приведенной выше
таблице), а не максимально
возможным для данного типа
размером. Например, столбец
VARCHAR(10) может содержать
строку с максимальной длиной
10 символов. Реально
требуемый объем памяти равен длине
строки (L) плюс 1 байт для
записи длины строки. Для строки
'abcd' L равно 4 и
требуемый объем памяти равен 5
байтов.
В случае типов данных BLOB
и TEXT требуется 1, 2, 3 или 4
байта для записи длины значения
данного столбца в зависимости от
максимально возможной длины для
данного типа. See Раздел 6.2.3.2, «Типы данных BLOB и TEXT».
Если таблица включает в себя столбец какого-либо типа с переменной длиной строки, то формат записи также будет переменной длины. Следует учитывать, что при создании таблицы MySQL может при определенных условиях преобразовать тип столбца с переменной длиной в тип с постоянной длиной строки или наоборот. See Раздел 6.5.3.1, «Молчаливые изменения определений столбцов».
Размер объекта ENUM
определяется количеством
различных перечисляемых величин.
Один байт используется для
перечисления до 255
возможных величин. Используя два
байта, можно перечислить до
65535 величин. See
Раздел 6.2.3.3, «Тип перечисления ENUM ».
Размер объекта SET
определяется количеством
различных элементов множества.
Если это количество равно
N, то размер объекта
вычисляется по формуле
(N+7)/8 и полученное число
округляется до 1,
2, 3, 4
или 8 байтов. Множество
SET может иметь максимум
64 элемента. See
Раздел 6.2.3.4, «Тип множества SET ».
Максимальный размер записи в MyISAM
составляет 65534 байтов. Каждый
BLOB или
TEXT-столбец
засчитывается здесь как 5-9 байтов.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
