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