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

MySQL 字串型別全解析:CHAR/VARCHAR/TEXT/BINARY/BLOB 差異與選型

     編輯:MySQL 綜合教學

二進制 vs 非二進制

分類型別內容字符集比較排序
非二進制CHAR, VARCHAR, TEXT字符字串可指定按校對規則
二進制BINARY, VARBINARY, BLOB字節字串無按字節碼值

BINARY ≈ CHAR、VARBINARY ≈ VARCHAR、BLOB ≈ TEXT (對應關係)。

CHAR vs VARCHAR 核心差異

特性CHAR(M)VARCHAR(M)
長度固定 M (0-255)可變 0-65535
儲存右補空格至 M實際長度 + 1/2 字節
讀取去尾空格保留尾空格 (標準 SQL)
適用固定長、高頻 UPDATE不定長、節省空間

VARCHAR vs TEXT

  • TEXT 不需指定 M,儲存 = 實際長度 + 2 字節。
  • TEXT 不能有 DEFAULT 值 (8.0 前),不能全長度索引 (需前綴索引)。
  • VARCHAR 5.0+ 最大 65535,可替代小型 TEXT。

型別儲存開銷速查

型別最大長度額外字節
TINYTEXT / TINYBLOB255+1
TEXT / BLOB64 KB+2
MEDIUMTEXT / MEDIUMBLOB16 MB+3
LONGTEXT / LONGBLOB4 GB+4

選型決策樹

  1. 固定長度且高頻 UPDATE → CHAR。
  2. 不定長、< 255 字元 → VARCHAR。
  3. 大文本、文章內容 → TEXT (按大小選 TINY/MEDIUM/LONG)。
  4. 二進制資料 (圖片、加密串) → BLOB 系列。
  5. 需大小寫敏感比較 → 加 BINARY 屬性或 _bin 校對規則。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved