MySQL数据类型 - 为列选择正确的类型

为列选择正确的类型

为了获得最佳存储,应该在所有情况下都尽量使用最精确的类型。例如,如果整数列用于1到99999之间的值,则MEDIUMINT UNSIGNED是最佳类型。在表示所有必需值的类型中,此类型使用的存储量最少。

所有针对DECIMAL列的基本计算(+、-、*、和/)都以65位十进制(以10为基数)的精度完成。

如果精度不太重要,或者如果速度是最重要的,DOUBLE类型可能就足够了。为了获得高精度,可以转换为存储在BIGINT中的定点类型。这使您能够使用64位整数执行所有计算,然后根据需要将结果转换回浮点值。

使用来自其他数据库引擎的数据类型

为了方便使用其他供应商为SQL实现编写的代码,MySQL映射了如下表所示的数据类型。这些映射使得从其他数据库系统向MySQL导入表定义变得更加容易。

其他供应商类型 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类型报告表结构。例如:

官方文档:
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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章