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

MySQL VARCHAR vs TEXT 差異總結:長度上限、儲存機制、查詢效能與選型建議

     編輯:MySQL 綜合教學

核心差異速查

特性VARCHAR(M)TEXT
最大長度65,535 位元組(受行長度限制)65,535 字元(約 64KB)
儲存開銷L+1 或 L+2 位元組(長度前綴)L+2 位元組
行內儲存是(未溢位)否(指標 + 溢位頁)
索引支援全長/前綴索引僅前綴索引
預設值可設定不可設定(5.6+ 可)

選型原則

  1. 能用 VARCHAR 盡量用,行內儲存、可建完整索引、效能更好。
  2. 超過 255 字元(舊版)或預估超長文本 → VARCHAR(大值) 或 TEXT。
  3. 描述性長文本、日誌、JSON 片段 → TEXT(模糊查詢不影響速度)。
  4. VARCHAR 受行長度 65,535 限制,TEXT 不計入行長度。

版本補充

MySQL 5.0.3+ VARCHAR 支援 65,535 位元組,大幅縮減過去需用 TEXT 的場景;但實際字元上限取決於字元集(utf8 約 21,845 字元)。

結語

「能 VARCHAR 不 TEXT」是鐵律。依業務長度預估、索引需求、行長度預算三維度決策,避免過度使用 TEXT 導致索引受限、溢位頁 I/O 增加。

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