首頁 > 資料庫 > mysql教程 > MATCH AGAINST 或 LIKE:MySQL 中的多列關鍵字搜尋哪個比較好?

MATCH AGAINST 或 LIKE:MySQL 中的多列關鍵字搜尋哪個比較好?

Patricia Arquette
發布: 2024-12-28 01:55:09
原創
864 人瀏覽過

MATCH AGAINST or LIKE: Which is Better for Multi-Column Keyword Searches in MySQL?

在資料庫搜尋中選擇MATCH AGAINST 和LIKE

在資料庫查詢中,人們面臨著選擇最佳查詢執行搜尋的困境是基於多列中的特定關鍵字的行。這個問題比較了兩種方法:

MATCH AGAINST

此查詢使用全文索引來搜尋包含關鍵字「foo」和「bar」的文件指定的列“foo_desc”和“bar_desc”。在 MySQL 5.6 及更高版本中,InnoDB 表支援 MATCH AGAINST。

LIKE

此查詢連接兩列中的值並使用LIKE 執行在結果中搜尋「foo」和「bar」的子字串string.

效能注意事項

MATCH AGAINST 在MyISAM表上表現出卓越的效能,利用全文索引來有效地搜尋關鍵字。相比之下,LIKE 執行全表掃描,在每一行中搜尋關鍵字,這對於大型資料集來說可能非常耗時。

LIKE 的限制

僅當直接應用於列(不是函數結果)、搜尋模式與列的開頭匹配並且該列已建立索引時, LIKE 才有效。否則,它預設為全表掃描,對於大型資料集來說變得不切實際。

MATCH AGAINST的缺點

MySQL 中 MATCH AGAINST 的一個限制是它只匹配整個單字。因此,搜尋“bla”不會匹配包含“blah”的列,但搜尋“bla*”會找到它。

首選方法

基於效能考量和LIKE的局限性,MATCH AGAINST是在大數據集中搜尋多列關鍵字的首選。它利用全文索引的效率來提供快速、準確的結果。

以上是MATCH AGAINST 或 LIKE:MySQL 中的多列關鍵字搜尋哪個比較好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板