СУБД MySQL блещет своим многообразием типов полей, столбцов, что делает её наиболее производительной среди конкурентов с лицензией GNU GPL. Её типы хранения данных разделяются на три категории: числовые, строковые (символьные) и поля для даты/времени. Ниже приведены таблицы с описанием, объемом занимаемой памяти и диапазоном значений для каждого типа.
Таблица 1. Числовые типы данных
|
Тип столбца, поля |
Обьем занимаемой памяти |
Диапазон допустимых значений |
|
TINYINT [ (M) ] |
1 байт |
От -128 до 127 От 0 до 255 |
|
SMALLINT [ (M) ] |
2 байта |
От -32768 до 32767 От 0 до 65535 |
|
MEDIUM INT [ (M) ] |
3 байта |
От -8388608 до 8388608 От 0 до 16777215 |
|
INT [ (M) ] |
4 байта |
От -2147683648 до 2147683648 От 0 до 4294967295 |
|
BIGINT [ (M) ] |
8 байт |
От -263 до 263 -1 От 0 до 264 |
|
BIT [ (M) ] |
(M + 7) / 8 байт |
От 1 до 64 бита, в зависимости от M |
|
BOOLEAN [ (M) ] |
1 байт |
0 или 1 |
|
DECIMAL [ (M [, D ] ) ], DEC [ (M [, D ] ) ], NUMERUC [ (M [, D ] ) ] |
M + 2 байта |
Повышенная точность; зависимость от параметров |
|
FLOAT [ (M, D) ] |
4 байта |
- |
|
DOUBLE [ (M, D) ], REAL [ (M, D) ], DOUBLE PRECISION [ (M, D) ] |
8 байт |
- |
Таблица 2. Строковые типы данных
|
Тип столбца, поля |
Обьем занимаемой памяти, байт |
Максимальный размер строки |
|
CHAR (M) |
M |
M символов |
|
VARCHAR (M) |
L + 1 |
M символов |
|
TINYBLOB, TINYTEXT |
L + 1 |
28 - 1 символов |
|
BLOB, TEXT |
L + 2 |
216 - 1 символов |
|
MEDIUMBLOB, MEDIUMTEXT |
L + 3 |
224 - 1 символов |
|
LONGBLOB, LONGTEXT |
L + 4 |
2(32) — 1 символов |
|
ENUM ('value1', 'value2',...) |
1 или 2 |
65 536 элементов |
|
SET ('value1', 'value2',...) |
1,2,3,4 или 8 |
64 элемента |
Таблица 3. Календарные типы данных
|
Тип столбца, поля |
Обьем занимаемой памяти |
Диапазон |
|
DATE |
3 байта |
От "1000-01-01" до "9999-12-31" |
|
TIME |
3 байта |
От "-828:59:59" до "828:59:59" |
|
DATATIME |
8 байт |
От "1000-01-01 00:00:00" до "9999-12-31 59:59:59" |
|
TIMESTAMP |
4 байта |
От "1970-01-01 00:00:00" до "2038-12-31 59:59:59" |
|
YEAR |
1 байт |
От 1901 до 2155 для YEAR (4) От 1970 до 2069 для YEAR (2) |
Для повышения производительности ваших баз данных MySQL, таблиц задавайте наиболее эффективные типы столбцов для тех или иных данных.


