加速MySQL 中多列的LIKE 查詢
當面對頻繁的SELECT ... LIKE '%text%' 查詢時多列MySQL表,很自然地想知道索引是否可以提高效能。不幸的是,透過引用從左側開始的字元來工作的索引無法協助 LIKE '%text%' 查詢,因為通配符允許在指定文字之前使用不同的字元。
MySQL 建議使用而不是依賴索引MyISAM 表的全文搜尋 (FTS)。 FTS 將文字列中的單字進行索引,即使目標文字出現在列中的任何位置,也能實現高效搜尋。
非 MyISAM 表的替代選項
對於不是基於MyISAM,您可以實現自訂索引系統。建立一個索引表,將單字與實際表中對應的 ID 一起儲存。這種方法透過將 LIKE '%text%' 查詢分解為單字搜尋來實現高效搜尋。
對磁碟使用和效能的影響
FTS 索引確實會消耗額外的資源與傳統索引相比的磁碟空間。不過,插入和刪除記錄不會明顯影響FTS索引的效能。
更新:InnoDB表的全文搜尋
從MySQL 5.6開始,全文搜尋功能也適用於InnoDB 表,提供符合您的查詢要求的高效能搜尋解決方案。
以上是如何加速 MySQL 中的多列 LIKE 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!