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

MySQL 資料類型完整指南

     編輯:MySQL 資料庫相關知識

MySQL 提供豐富的資料類型以滿足不同業務場景需求,合理選擇資料類型是資料庫設計效能優化的基石。本文系統整理 MySQL 主要資料類型分類、特性與適用場景,並附上官方文件圖示供參考。

MySQL 資料類型對照表

數值類型

類型大小 (Bytes)範圍 (有符號)範圍 (無符號)適用場景
TINYINT1-128 ~ 1270 ~ 255布林值、狀態碼、極小整數
SMALLINT2-32,768 ~ 32,7670 ~ 65,535小範圍整數、年齡、排序號
MEDIUMINT3-8,388,608 ~ 8,388,6070 ~ 16,777,215中等範圍整數、IPv4 地址儲存
INT / INTEGER4-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295通用整數、主鍵自增 ID
BIGINT8-9.22e18 ~ 9.22e180 ~ 1.84e19大整數、高併發主鍵、時間戳毫秒
FLOAT4±3.4e38 (約 7 位有效數字)-單精度浮點、科學計算近似值
DOUBLE8±1.7e308 (約 15 位有效數字)-雙精度浮點、精密科學計算
DECIMAL(M,D)M+2精確定點數,取決於 M、D-金融金額、精確計算、避免浮點誤差
BIT(M)~M/8位域值-位元標誌、權限掩碼

日期時間類型

類型大小範圍格式特性
DATE3 Bytes1000-01-01 ~ 9999-12-31YYYY-MM-DD純日期,無時區
TIME3 Bytes-838:59:59 ~ 838:59:59HH:MM:SS時間間隔或一天內時間
DATETIME8 Bytes1000-01-01 00:00:00 ~ 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS日期時間組合,無時區轉換
TIMESTAMP4 Bytes1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTCYYYY-MM-DD HH:MM:SS自動時區轉換,支援自動初始化/更新
YEAR1 Byte1901 ~ 2155YYYY僅儲存年份

建議:優先使用 TIMESTAMP 儲存業務時間(4 Bytes、自動時區、自動更新),跨時區應用必選;需儲存 2038 年後日期或不想要時區轉換時用 DATETIME。

字串類型

類型最大長度儲存特性適用場景
CHAR(M)0 ~ 255 Bytes定長,右側填充空格固定長度代碼(如 ISO 國家碼、MD5 雜湊)
VARCHAR(M)0 ~ 65,535 Bytes變長,1-2 Bytes 儲存長度通用變長字串(姓名、標題、URL)
TINYTEXT255 Bytes變長,不可有 DEFAULT極短文本
TEXT64 KB變長文章內容、描述、JSON 文本
MEDIUMTEXT16 MB變長長文本、日誌
LONGTEXT4 GB變長超大文本、完整文檔
BINARY / VARBINARY同 CHAR/VARCHAR二進位位元組,無字符集檔案雜湊、加密資料、大小寫敏感比對
BLOB 系列同 TEXT 系列二進位大物件圖片、檔案、序列化物件
ENUM65,535 個元素內部儲存為整數索引固定枚舉值(狀態、類型、性別)
SET64 個成員位掩碼儲存多選標籤、權限集合

空間與 JSON 類型 (MySQL 5.7+)

  • GEOMETRY / POINT / LINESTRING / POLYGON 等:支援 GIS 空間資料,配合空間索引實現位置查詢。
  • JSON:原生 JSON 文檔儲存,支援路徑查詢、索引虛擬欄位、高效解析,替代 TEXT 儲存結構化半結構資料。

選型黃金法則

  1. 越小越好:滿足業務前提下選擇佔用空間最小的類型,減少 I/O 與記憶體壓力。
  2. 整數優於字串:IPv4 用 INT UNSIGNED,狀態碼用 TINYINT,避免字串比較開銷。
  3. 定點數用於金錢:絕不使用 FLOAT/DOUBLE 儲存金額,必選 DECIMAL(19,4) 或按分儲存 BIGINT。
  4. 避免 BLOB/TEXT 做索引:若需檢索,改用 VARCHAR + 前綴索引或全文索引。
  5. 善用 NOT NULL + DEFAULT:減少 NULL 判斷開銷,利於索引統計與查詢優化器決策。
  6. 字符集統一 UTF8MB4:支援 Emoji 與完整 Unicode,避免編碼轉換亂碼。

掌握資料類型特性,結合業務實際場景選型,是打造高效能、易維護 MySQL 資料庫的關鍵第一步。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved