爲列選擇正確的類型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文檔