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

從 MSSQL 遷移 MySQL 語法差異全對比 (四):BLOB/TEXT 大對象類型對照

     編輯:MySQL 綜合教學

MySQL BLOB/TEXT 四層級體系

類型最大長度位元組適用場景
TINYBLOB / TINYTEXT25528-1極短片段、配置項
BLOB / TEXT65,53564 KB一般文檔、JSON、日誌
MEDIUMBLOB / MEDIUMTEXT16,777,21516 MB大文檔、圖片、序列化物件
LONGBLOB / LONGTEXT4,294,967,2954 GB超大檔案、視頻、完整備份

BLOB vs TEXT 核心差異

MSSQL 大對象類型 (LOB)

特性BLOBTEXT
資料性質二進制字串 (byte string)非二進制字串 (character string)
字元集無有 (繼承表/庫預設)
排序比較基於位元組數值基於字元集排序規則
典型用途圖片、音訊、加密資料、序列化二進制長文本、文章、JSON、XML、日誌
類型最大長度備註
TEXT / NTEXT2 GB已棄用 (Deprecated),勿用於新開發
IMAGE2 GB已棄用,二進制資料
VARCHAR(MAX)2 GB推薦替代 TEXT,字串資料
NVARCHAR(MAX)2 GB推薦替代 NTEXT,Unicode 字串
VARBINARY(MAX)2 GB推薦替代 IMAGE,二進制資料
XML2 GB原生 XML 型別,支援 XQuery

遷移對照建議

MSSQL 來源MySQL 目標說明
VARCHAR(MAX) / NVARCHAR(MAX)LONGTEXT字串資料,字元集 utf8mb4
VARBINARY(MAX)LONGBLOB二進制資料
TEXT / NTEXT (舊)LONGTEXT同等容量
IMAGE (舊)LONGBLOB同等容量
XMLLONGTEXT / JSONMySQL 5.7+ 原生 JSON 型別更佳

效能與儲存考量

  • InnoDB 行溢出:BLOB/TEXT 超過 768 位元組會存入溢出頁,僅在主記錄保留 20 位元組指針
  • 避免 SELECT *:讀取大對象欄位會觸發額外 I/O,明確列出需要欄位
  • 前綴索引:INDEX(content(100)) 僅索引前 100 字元,適用 TEXT 搜尋優化
  • 單獨表:超大 BLOB/TEXT 建議拆分到獨立表 (垂直分表),主表僅存 ID + 指針

總結

  • MySQL:BLOB (二進制) / TEXT (字串) 四層級,最大 4 GB
  • MSSQL:MAX 類型統一 2 GB,棄用 TEXT/NTEXT/IMAGE
  • 遷移:字串 → LONGTEXT (utf8mb4),二進制 → LONGBLOB,XML → JSON/LONGTEXT
  • 效能:垂直分表、前綴索引、避免 SELECT *、啟用 innodb_file_per_table
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved