(mysql.info.gz) Storage requirements
Info Catalog
(mysql.info.gz) String types
(mysql.info.gz) Column types
(mysql.info.gz) Choosing types
11.5 Column Type Storage Requirements
=====================================
The storage requirements for each of the column types supported by
MySQL are listed by category.
The maximum size of a row in a `MyISAM' table is 65,534 bytes. Each
`BLOB' and `TEXT' column accounts for only five to nine bytes toward
this size.
If a `MyISAM' or `ISAM' table includes any variable-length column
types, the record format will also be variable length. When a table is
created, MySQL may, under certain conditions, change a column from a
variable-length type to a fixed-length type or vice versa.
Silent column changes.
Storage Requirements for Numeric Types
--------------------------------------
*Column Type* *Storage Required*
`TINYINT' 1 byte
`SMALLINT' 2 bytes
`MEDIUMINT' 3 bytes
`INT', `INTEGER' 4 bytes
`BIGINT' 8 bytes
`FLOAT(P)' 4 bytes if 0 <= P <= 24, 8 bytes if 25 <=
P <= 53
`FLOAT' 4 bytes
`DOUBLE [PRECISION]', item 8 bytes
`REAL'
`DECIMAL(M,D)', M+2 bytes if D > 0, `M+1' bytes if D = 0
`NUMERIC(M,D)' (D+2, if `M < D')
Storage Requirements for Date and Time Types
--------------------------------------------
*Column Type* *Storage Required*
`DATE' 3 bytes
`DATETIME' 8 bytes
`TIMESTAMP' 4 bytes
`TIME' 3 bytes
`YEAR' 1 byte
Storage Requirements for String Types
-------------------------------------
*Column Type* *Storage Required*
`CHAR(M)' `M' bytes, 0 `<= M <=' 255
`VARCHAR(M)' L+1 bytes, where `L <= M' and 0 `<= M <='
255
`TINYBLOB', `TINYTEXT' L+1 bytes, where L < 2^8
`BLOB', `TEXT' L+2 bytes, where L < 2^16
`MEDIUMBLOB', `MEDIUMTEXT' L+3 bytes, where L < 2^24
`LONGBLOB', `LONGTEXT' L+4 bytes, where L < 2^32
`ENUM('VALUE1','VALUE2',...)' 1 or 2 bytes, depending on the number of
enumeration values (65,535 values maximum)
`SET('VALUE1','VALUE2',...)' 1, 2, 3, 4, or 8 bytes, depending on the
number of set members (64 members maximum)
`VARCHAR' and the `BLOB' and `TEXT' types are variable-length types.
For each, the storage requirements depend on the actual length of
column values (represented by L in the preceding table), rather than on
the type's maximum possible size. For example, a `VARCHAR(10)' column
can hold a string with a maximum length of 10 characters. The actual
storage required is the length of the string (L), plus 1 byte to record
the length of the string. For the string `'abcd'', L is 4 and the
storage requirement is 5 bytes.
The `BLOB' and `TEXT' types require 1, 2, 3, or 4 bytes to record the
length of the column value, depending on the maximum possible length of
the type. `BLOB' BLOB.
The size of an `ENUM' object is determined by the number of different
enumeration values. One byte is used for enumerations with up to 255
possible values. Two bytes are used for enumerations with up to 65,535
values. `ENUM' ENUM.
The size of a `SET' object is determined by the number of different set
members. If the set size is N, the object occupies `(N+7)/8' bytes,
rounded up to 1, 2, 3, 4, or 8 bytes. A `SET' can have a maximum of 64
members. `SET' SET.
Info Catalog
(mysql.info.gz) String types
(mysql.info.gz) Column types
(mysql.info.gz) Choosing types
automatically generated byinfo2html