「LIKE」とワイルドカードを使用した MySQL 検索の最適化
「%value%」などのワイルドカードを含む「LIKE」演算子を使用するクエリ、インデックスを妨げる先頭のワイルドカードにより、最適化の課題が生じることがよくあります。
解決策
検索文字列が比較的短く、ストレージ領域が十分にある場合は、次のアプローチを検討してください:
利点
この手法では、先頭のワイルドカードが削除されます。高速ルックアップのためにインデックスを使用できるようになりますが、追加のストレージが必要になります。 space.
ストレージに関する考慮事項
このアプローチのストレージ要件は、ワード長に応じて二次関数的に増加します。たとえば、5 文字の単語の場合、元の単語を保存する場合に比べて 2.5 倍のストレージが必要になります。
ハイフンの処理
ハイフンが使用される場合は、妥協する必要があります。ストレージ効率と検索の柔軟性の間で決定されます。ハイフンをそのまま使用して単語を保存するとストレージ スペースが犠牲になり、ハイフンを削除すると特定の検索シナリオが制限されます。
代替アプローチ
サフィックス配列は、サフィックス取得のためのストレージ効率の高いソリューションを提供します。データベースへの直接の適用性はまだ十分に検討されていません。
以上が「LIKE」とワイルドカードを使用して MySQL 検索を最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。