文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  針對 BLOB 類型進行最佳化

10.4.2.3 針對 BLOB 類型進行最佳化

  • 當儲存包含文字資料的大型 blob 時,請考慮先壓縮它。當整個表格由 InnoDBMyISAM 壓縮時,請勿使用此技術。

  • 對於具有多個欄位的表格,為了減少不使用 BLOB 欄位的查詢的記憶體需求,請考慮將 BLOB 欄位分割到單獨的表格中,並在需要時使用聯結查詢來參考它。

  • 由於擷取和顯示 BLOB 值的效能需求可能與其他資料類型非常不同,您可以將特定於 BLOB 的表格放在不同的儲存裝置上,甚至放在單獨的資料庫實例上。例如,擷取 BLOB 可能需要大型循序磁碟讀取,這比 SSD 裝置更適合傳統硬碟。

  • 請參閱第 10.4.2.2 節「針對字元和字串類型進行最佳化」,了解為什麼二進位 VARCHAR 欄位有時比等效的 BLOB 欄位更佳的原因。

  • 與其測試與非常長的文字字串的相等性,不如將欄位值的雜湊儲存在單獨的欄位中,為該欄位建立索引,並在查詢中測試雜湊值。(使用 MD5()CRC32() 函式產生雜湊值。)由於雜湊函式可能會為不同的輸入產生重複的結果,您仍然需要在查詢中包含 AND blob_column = long_string_value 子句,以防止錯誤匹配;效能優勢來自於雜湊值的較小、易於掃描的索引。