フルテキスト インデックスは InnoDB の LIKE \'%string%\' クエリのパフォーマンスをどのように向上させることができますか?

Susan Sarandon
リリース: 2024-10-25 04:48:02
オリジナル
759 人が閲覧しました

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

InnoDB での LIKE '%string%' クエリの MySQL パフォーマンスの強化

背景: LIKE '%string%' を利用するクエリの最適化構文は、特に InnoDB 環境では難しい場合があります。これに対処するために、利用可能なオプションとその制限について詳しく見てみましょう。

基本的なインデックス作成の制限事項:

ALTER TABLE の例 ADD INDEX で示す標準インデックスの作成idxSearch (keywords); では、LIKE '%whatever%' のようなクエリのパフォーマンスの問題は解決されません。これは、InnoDB インデックスが文字列の先頭から末尾まで構築されるためです。その結果、文字列がフィールド内のどこにでも現れる可能性がある「フローティング」検索では、これらのインデックスを利用できません。

全文インデックスの紹介:

柔軟な文字列検索の場合、全文インデックスが機能します。これらは、検索語がインデックス付き列のどこにでも出現する可能性があるシナリオに合わせて調整されています。 InnoDB のバージョン 5.6.4 のフルテキスト インデックスのサポートにより、InnoDB テーブルでもその利点を活用できるようになりました。

実装:

フルテキスト インデックスを実装するには、次のクエリを実行します。 :

ALTER TABLE example ADD FULLTEXT INDEX (keywords)
ログイン後にコピー

全文インデックスの利点:

  • LIKE '%whatever%' のようなフローティング クエリの検索パフォーマンスが最適化されました
  • 改善されましたこのようなクエリの効率とレイテンシの削減

追加の考慮事項:

  • InnoDB を利用するには、MySQL サーバーが少なくともバージョン 5.6.4 を実行していることを確認してください。フルテキスト インデックス。
  • クエリ プランを監視して、フルテキスト インデックスが効果的に使用されていることを確認します。
  • キーワード列に過剰または不要なデータが含まれている場合は、そのサイズを最適化することを検討してください。

以上がフルテキスト インデックスは InnoDB の LIKE \'%string%\' クエリのパフォーマンスをどのように向上させることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!