首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 數值類型完整參考手冊:BIT、TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT 範圍、儲存與別名對照

     編輯:MySQL 資料庫相關知識

MySQL 數值類型快速查閱表

本文匯總 MySQL 所有整數與位元類型的定義語法、儲存空間、有號/無號範圍、別名關係,供開發、審查、遷移時快速查閱決策。

位元與整數類型完整對照

類型語法位元數有號範圍無號範圍儲存位元組別名/備註
BIT BIT[(M)] M (1~64,預設 1) N/A 0 ~ 2^M-1 約 (M+7)/8 bytes 5.0+ 獨立類型,非 TINYINT 同義詞
TINYINT TINYINT[(M)] [UNSIGNED] [ZEROFILL] 8 -128 ~ 127 0 ~ 255 1 最小整數
BOOL / BOOLEAN BOOL / BOOLEAN 8 -128 ~ 127 0 ~ 255 1 TINYINT(1) 同義詞,0=false,非0=true
SMALLINT SMALLINT[(M)] [UNSIGNED] [ZEROFILL] 16 -32,768 ~ 32,767 0 ~ 65,535 2 小整數
MEDIUMINT MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] 24 -8,388,608 ~ 8,388,607 0 ~ 16,777,215 3 中等整數
INT / INTEGER INT[(M)] [UNSIGNED] [ZEROFILL]
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
32 -2,147,483,648 ~ 2,147,483,647 0 ~ 4,294,967,295 4 INT = INTEGER 同義詞,標準整數
BIGINT BIGINT[(M)] [UNSIGNED] [ZEROFILL] 64 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 0 ~ 18,446,744,073,709,551,615 8 大整數

關鍵屬性說明

  • (M):顯示寬度,不限制儲存範圍。INT(1) = INT(11) = INT(20)。配合 ZEROFILL 左補零顯示
  • UNSIGNED:無號屬性,範圍變為 0 ~ 2^N-1,空間不變,效能相同
  • ZEROFILL:隱含 UNSIGNED,顯示時左側補零至寬度 M
  • BOOL/BOOLEAN:純語法糖,儲存為 TINYINT(1)。未來版本可能引入真正布林類型

選型決策速查

數值特徵                    → 推薦類型
----------------------------------------------------------
布林旗標、0/1 狀態          → TINYINT(1) / BOOL
極小範圍枚舉 (0~255)        → TINYINT UNSIGNED
小範圍 ID/計數 (0~65K)      → SMALLINT UNSIGNED
中等 ID/RGB/大計數          → MEDIUMINT UNSIGNED
通用主鍵/外鍵/業務 ID       → INT UNSIGNED / BIGINT UNSIGNED
分散式系統全域唯一 ID       → BIGINT UNSIGNED (雪花算法等)
精確金額 (分為單位)         → BIGINT UNSIGNED
Unix 時間戳 (秒)            → INT UNSIGNED
Unix 時間戳 (毫秒)          → BIGINT UNSIGNED
位元旗標組合 (ACL/權限)     → INT UNSIGNED / BIGINT UNSIGNED + 位運算

常見陷阱提醒

儲存引擎差異備註

  • InnoDB:標準儲存,聚簇索引按主鍵序
  • MyISAM:標準儲存,支援壓縮表
  • Memory:定長儲存,VARCHAR 變 CHAR
  • Falcon/ColumnStore:自有壓縮編碼,類型選擇影響壓縮率

此手冊涵蓋 MySQL 核心數值類型所有關鍵參數。建議專案建立《資料類型選型規範》,將上述決策樹納入代碼審查清單,從源頭保障資料模型的正確性、效能與可維護性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
陷阱後果避免方法
以為 INT(4) 限制 4 位數 可存 100000,邏輯錯誤 忽略 (M),應用層驗證或 CHECK 約束
金額用 FLOAT/DOUBLE 精度誤差,對帳永遠差分 用 DECIMAL(10,2) 或 BIGINT 存分
無號欄位插入負數 變為巨大正數 (模 2^N) 應用層嚴格檢查,資料庫 CHECK (col >= 0)
自增 ID 用 SMALLINT 超過 65535 立即報錯 預估 10 年增長,最小用 INT
以為 BOOL 佔 1 bit 實際佔 1 byte (TINYINT) 理解同義詞本質,需極致省空間用位運算