为列选择正确的类型html
为了得到最佳存储,应该在全部状况下都尽可能使用最精确的类型。例如,若是整数列用于1到99999之间的值,则MEDIUMINT UNSIGNED是最佳类型。在表示全部必需值的类型中,此类型使用的存储量最少。mysql
全部针对DECIMAL列的基本计算(+、-、*、和/)都以65位十进制(以10为基数)的精度完成。sql
若是精度不过重要,或者若是速度是最重要的,DOUBLE类型可能就足够了。为了得到高精度,能够转换为存储在BIGINT中的定点类型。这使您可以使用64位整数执行全部计算,而后根据须要将结果转换回浮点值。数据库
使用来自其余数据库引擎的数据类型markdown
为了方便使用其余供应商为SQL实现编写的代码,MySQL映射了以下表所示的数据类型。这些映射使得从其余数据库系统向MySQL导入表定义变得更加容易。ide
其余供应商类型 | MySQL类型 |
---|---|
BOOL | TINYINT |
BOOLEAN | TINYINT |
CHARACTER VARYING(M) | VARCHAR(M) |
FIXED | DECIMAL |
FLOAT4 | FLOAT |
FLOAT8 | DOUBLE |
INT1 | TINYINT |
INT2 | SMALLINT |
INT3 | MEDIUMINT |
INT4 | INT |
INT8 | BIGINT |
LONG VARBINARY | MEDIUMBLOB |
LONG VARCHAR | MEDIUMTEXT |
LONG | MEDIUMTEXT |
MIDDLEINT | MEDIUMINT |
NUMERIC | DECIMAL |
数据类型映射发生在表建立时,以后原始类型规范将被丢弃。若是使用其余供应商使用的类型建立一个表,而后发出DESCRIBE tbl_name语句,那么MySQL将使用等效的MySQL类型报告表结构。例如:htm
官方文档:
https://dev.mysql.com/doc/refman/8.0/en/choosing-types.html
https://dev.mysql.com/doc/refman/8.0/en/other-vendor-data-types.html文档