私は自分のサイトのメッセージ部分の検索機能を構築しており、9,000,000 行を少し超えるメッセージ データベースがありsender、subject、 、messageフィールドにインデックスが付けられています。(例) のように、クエリで LIKE mysql 句を使用することを望んでいました
SELECT sender, subject, messageFROM MessagesWHERE messageLIKE '%EXAMPLE_QUERY%';
結果を取得します。残念ながら、先頭のワイルドカードが存在する場合、MySQL はインデックスを使用しません。これは、検索クエリがメッセージのどこにでも表示される可能性があるために必要です (これがワイルドカードの仕組みですよね?)。クエリは非常に遅く、煩わしい 50% ルールのため、フルテキスト インデックスも使用できません (それだけを除外する余裕はありません)。likeと2つのワイルドカードを使用してクエリを最適化する方法はありますか? どんな助けでも大歓迎です。