在資料庫中搜尋包含分散在多列中的特定關鍵字的行時,會出現兩個主要選項: MATCH AGAINST 和LIKE 。每種方法都有其優點和缺點,如下所述。
MATCH AGAINST
MATCH AGAINST 在適當的列上利用全文索引,在表上擁有卓越的效能MyISAM 儲存引擎。這允許對指定列中的多個關鍵字進行高效匹配。
LIKE
雖然比 MATCH AGAINST 更通用,但 LIKE 搜尋需要透過串聯和單獨評估每一行比較。這種方法會導致顯著的性能損失,特別是對於大型表。此外,LIKE 可能會遇到部分關鍵字匹配的問題,例如 MATCH AGAINST 時「xxfoo」不符。
首選
對於MyISAM 表, MATCH AGAINST 是涉及跨多個關鍵字的全文搜尋的首選
對於InnoDB 表,MySQL 5.6 及更高版本提供了對Match Against 的支持,使其成為一個可行的選項。
考慮使用第三方搜尋Engine
如果效能是一個關鍵因素,而底層資料庫系統沒有提供令人滿意的解決方案,可以考慮整合一個專為全文索引和搜尋而設計的第三方搜尋引擎。
以上是MATCH AGAINST 或 LIKE:哪個查詢優化我的全文搜尋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!