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

MySQL 與 SQL Server 差異系列(四):BLOB 與大物件資料類型對比

     編輯:MySQL 資料庫相關知識

本文對比 MySQL BLOB 類型與 SQL Server 大物件(LOB)類型的分類、大小限制、儲存特性及適用場景。

MySQL BLOB 類型詳細分類

BLOB (Binary Large Object) 儲存二進制字串(位元組字串),無字符集,排序比較基於位元組數值。

類型最大長度適用場景
TINYBLOB255 位元組極小二進制資料(圖示、縮圖)
BLOB65,535 位元組 (64 KB)小型文件、圖片
MEDIUMBLOB16,777,215 位元組 (16 MB)中型文件、音訊
LONGBLOB4,294,967,295 位元組 (4 GB)大型文件、視頻、完整備份

BLOB vs TEXT 關鍵差異

特性BLOBTEXT
資料性質二進制字串非二進制字串(字元字串)
字符集無有
排序比較基於位元組數值基於字符集規則
典型用途圖片、音訊、加密資料長文本、文章、JSON、XML

SQL Server 大物件 (LOB) 類型

SQL Server 無 BLOB 關鍵字,統稱為 LOB 類型:

  • 傳統 LOB (即將淘汰): TEXT, NTEXT, IMAGE
  • 大數值類型 (推薦): VARCHAR(MAX), NVARCHAR(MAX), VARBINARY(MAX)
  • 結構化: XML

所有 LOB 資料儲存在專用的 LOB 資料頁面,行內儲存最多 8000 位元組,超過則移至 LOB 頁面並用 16 位元組指標引用。

儲存建議與最佳實踐

  1. 避免將大文件直接存入資料庫:影響備份恢復速度、緩衝池效率、複制延遲。建議存檔案系統/物件存儲(S3、MinIO),資料庫僅存路徑。
  2. MySQL 選型: 圖片二進制用 BLOB;文本內容用 TEXT / LONGTEXT。
  3. SQL Server 選型: 統一使用 VARBINARY(MAX) (二進制) 或 VARCHAR(MAX)/NVARCHAR(MAX) (文本)。
  4. 啟用壓縮: MySQL InnoDB 表壓縮、SQL Server 資料壓縮可減少 LOB 空間佔用。

效能考量

  • 大欄位查詢時盡量避免 SELECT *,明確列出所需欄位
  • MySQL max_allowed_packet 需大於最大 BLOB 大小
  • SQL Server 可用 FILESTREAM 或 FileTable 整合檔案系統
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved