首頁 >資料庫 >mysql教程 >如何加速 MySQL 中的多列 LIKE 查詢?

如何加速 MySQL 中的多列 LIKE 查詢?

Susan Sarandon
Susan Sarandon原創
2024-12-11 00:37:10947瀏覽

How Can I Speed Up Multi-Column LIKE Queries in MySQL?

加速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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn