全文索引如何增強 InnoDB 中 LIKE \'%string%\' 查詢的效能?

Susan Sarandon
發布: 2024-10-25 04:48:02
原創
846 人瀏覽過

How Can Fulltext Indexes Enhance Performance for LIKE '%string%' Queries in InnoDB?

增強InnoDB 中LIKE '%string%' 查詢的MySQL 效能

背景: 最佳化利用LIKE '%string%' 的查詢語法可能具有挑戰性,尤其是在InnoDB 環境中。為了解決這個問題,讓我們深入研究可用的選項及其限制。

基本索引的限制:

建立標準索引,如ALTER TABLE 範例ADD INDEX 所示idxSearch(關鍵字);無法解決LIKE '%whatever%' 等查詢的效能問題。這是因為 InnoDB 索引是從字串的開頭到結尾建構的。因此,字串可以出現在欄位內任何位置的「浮動」搜尋無法利用這些索引。

引入全文索引:

用於靈活的字串搜索,全文索引開始發揮作用。它們專為搜尋字詞可以出現在索引列中任何位置的場景而自訂。 InnoDB 從版本 5.6.4 開始支援全文索引,即使對於 InnoDB 表也可以利用其優勢。

實作:

要實現全文索引,請執行以下查詢:

ALTER TABLE example ADD FULLTEXT INDEX (keywords)
登入後複製

全文索引的好處:

  • 優化了浮動查詢(如LIKE '%whatever%')的搜尋效能
  • 改善此類查詢的效率和減少延遲

其他注意事項:

  • 確保MySQL 伺服器運作至少版本5.6.4 才能利用InnoDB全文索引。
  • 監控查詢計畫以確認全文索引是否有效使用。
  • 如果關鍵字列包含過多或不必要的數據,請考慮最佳化其大小。

以上是全文索引如何增強 InnoDB 中 LIKE \'%string%\' 查詢的效能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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