MySQL 8.4 版本注意事項
當儲存包含文字資料的大型 blob 時,請考慮先壓縮它。當整個表格由
InnoDB
或MyISAM
壓縮時,請勿使用此技術。對於具有多個欄位的表格,為了減少不使用 BLOB 欄位的查詢的記憶體需求,請考慮將 BLOB 欄位分割到單獨的表格中,並在需要時使用聯結查詢來參考它。
由於擷取和顯示 BLOB 值的效能需求可能與其他資料類型非常不同,您可以將特定於 BLOB 的表格放在不同的儲存裝置上,甚至放在單獨的資料庫實例上。例如,擷取 BLOB 可能需要大型循序磁碟讀取,這比 SSD 裝置更適合傳統硬碟。
請參閱第 10.4.2.2 節「針對字元和字串類型進行最佳化」,了解為什麼二進位
VARCHAR
欄位有時比等效的 BLOB 欄位更佳的原因。與其測試與非常長的文字字串的相等性,不如將欄位值的雜湊儲存在單獨的欄位中,為該欄位建立索引,並在查詢中測試雜湊值。(使用
MD5()
或CRC32()
函式產生雜湊值。)由於雜湊函式可能會為不同的輸入產生重複的結果,您仍然需要在查詢中包含AND
子句,以防止錯誤匹配;效能優勢來自於雜湊值的較小、易於掃描的索引。blob_column
=long_string_value