首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 常見資料類型完整圖解:整數、浮點、字串、日期時間選型指南

     編輯:MySQL 綜合教學

MySQL 常見資料類型完整圖解:整數、浮點、字串、日期時間選型指南

正確的資料類型選型能節省 30%~50% 儲存空間,並顯著提升索引與查詢效能。本文彙整官方文檔與實戰經驗,產出四大類型對照表,附帶選型避坑指南。

一、整數類型:按範圍精準選型

類型儲存有號範圍無號範圍典型場景
TINYINT1 Byte-128 ~ 1270 ~ 255布爾旗標、極小枚舉
SMALLINT2 Bytes-32,768 ~ 32,7670 ~ 65,535年齡、小範圍計數
MEDIUMINT3 Bytes-8,388,608 ~ 8,388,6070 ~ 16,777,215中等量級 ID
INT4 Bytes-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295通用主鍵、外鍵
BIGINT8 Bytes-2^63 ~ 2^63-10 ~ 2^64-1海量 ID、時間戳毫秒

建議: 能用 TINYINT 絕不上 SMALLINT;UNSIGNED 可將正數範圍翻倍,適合自增主鍵。

二、浮點與定點數:金額務必用 DECIMAL

類型儲存精度適用場景
FLOAT4 Bytes單精度(約 7 位有效數字)科學計算、非精確測量
DOUBLE8 Bytes雙精度(約 15 位有效數字)高精度科學計算
DECIMAL(M,D)M+2 Bytes精確定點,字串儲存金額、價格、比率(如 DECIMAL(10,2))

鐵律: 任何涉及金錢的欄位禁止使用 FLOAT/DOUBLE,浮點誤差會導致對帳失衡。

三、字串類型:定長 vs 變長 vs 大物件

類型儲存最大長度特性選型建議
CHAR(M)M Bytes255定長,右側空格填充極短固定長(MD5、UUID、國別碼)
VARCHAR(M)L+1/2 Bytes65,535變長,實際長度+1/2字節長度前綴通用變長字串,優先選擇
TINYTEXT/BLOBL+1255不支援 DEFAULT,需完整讀取極少用,建議改 VARCHAR
TEXT/BLOBL+264 KB同上文章內容、JSON 片段
MEDIUMTEXT/BLOBL+316 MB同上長文檔、圖片二進位
LONGTEXT/BLOBL+44 GB同上超大物件,慎用
ENUM1-2 Bytes65,535 成員單選枚舉,內部存數字狀態碼、類別標籤
SET1-8 Bytes64 成員多選集合,位運算權限位掩碼、標籤組合

四、日期時間類型:精度與時區的取捨

類型儲存格式/範圍時區感知選型建議
DATE3 BytesYYYY-MM-DD (1000-01-01 ~ 9999-12-31)否生日、紀念日
TIME3 BytesHH:MM:SS (-838:59:59 ~ 838:59:59)否時長、排班時間
DATETIME8 BytesYYYY-MM-DD HH:MM:SS否業務時間、日誌記錄(不隨時區變動)
TIMESTAMP4 Bytes1970-01-01 ~ 2038-01-19是(儲存 UTC,讀取轉會話時區)建立/更新時間戳、跨時區應用
YEAR1 Byte1901 ~ 2155否年份歸檔

關鍵差異: TIMESTAMP 受時區影響且有 2038 年上限;DATETIME 範圍大且固定,適合業務時間;5.6+ 支援 DATETIME(6) 微秒精度。

五、延伸閱讀推薦

  • MySQL 各引擎自增起始值重設
  • Navicat 遠端連線 10061/1045 錯誤排查
  • PHP MySQL 操作類封裝最佳實踐
  • 主從同步配置與大數據分頁優化
  • 百萬級查詢速度調優實戰
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved