Type, Range and byte size of column types.
Numeric data types
Type Bytes used From To To (unsigned, from 0)
TINYINT 1 -128 127 255
SMALLINT 2 -32,768 32,767 65535
MEDIUMINT 3 -8,388,608 8,388,607 16,777,215
INT 4 -2,147,483,648 2,147,483,647 4,294,967,295
BIGINT 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807 18,446,744,073,709,551,615
FLOAT 4 -3.402823466E+38 to -1.175494351E-38 1.175494351E-38 to 3.402823466E+38 and 0
FLOAT(X) (4 if X<=24),(8 if 25<=X<=53)
DOUBLE 8 -1.7976931348623157E+308 to -2.2250738585072014E-308 2.2250738585072014E-308 to 1.7976931348623157E+308 and 0
REAL 8 same as DOUBLE
DECIMAL(M,D) M+2 bytes if D>0, M+1 bytes if D=0
NUMERIC(M,D) M+2 bytes if D>0, M+1 bytes if D=0 same as DECIMAL
Date/Time data types
Type Bytes used Start End Info
DATE 3 1000-01-01 9999-12-31
DATETIME 8 1000-01-01 9999-12-31
TIMESTAMP(14) 4 19700101000000 2037?????????? YYYYMMDDHHMMSS, 14 is the display size
TIME 3 -838:59:59 838:59:59
YEAR 1 1901 2155
String types
Type Bytes used Info
CHAR(M) M bytes, 1 <= M <= 255
VARCHAR(M) L+1 bytes, where L<=M and 1<=M<=255
TINYTEXT L+1 bytes, where L<2^8 255 bytes
TEXT L+2 bytes, where L<2^16 64KB - 1
MEDIUMTEXT L+3 bytes, where L<2^24 16MB - 1
LONGTEXT L+4 bytes, where L<2^32 4GB - 1
*BLOB Same as TEXT types BLOB objects can hold binary data.
ENUM('V1','V2',..) 1 (0<Vn<255) or 2 (256<Vn<65535) bytes 65535 values maximum
SET('V1','V2',..) (Vn+7)/8 bytes rounded up 64 members maximum