1. 一般的な使用法: (1)%で使用する % は 1 つ以上の文字のワイルドカードを表します。たとえば、フィールド名が大文字で始まるデータを照会する場合は次のようになります。 (2)一緒に使う _ は 1 文字だけのワイルドカードを表します。上記のクエリの % を _ に変更すると、次のデータのみが見つかることがわかります。 2. ファジークエリを使用すると、データ量が多い場合にインデックスの失敗やパフォーマンスの問題が発生します。 (1)%または_で始まるあいまい検索を避ける 実行プランを説明すると、ファジークエリを使用する場合、クエリが%と_で始まっていなくてもインデックスは有効であることがわかりました。 クエリが % または _ で始まる場合、インデックスは無効になります。 (2)カバーインデックスの使用 クエリ条件とクエリ結果の両方がインデックス内のフィールドである場合、このインデックスはカバーリングインデックスと呼ばれることがあります。このとき、ファジークエリインデックスのような使用が効果的です。 InnoDBの主キーをインデックスに追加できません 注意:カバーリング インデックスを使用する場合、フィールドの長さは要件によって制限されます。通常、長さを超えるとインデックスは無効になります。 クエリに説明フィールドを含めると、カバーインデックスも失敗します (データベースはテスト済みで、最大長 255 のフィールドのみをサポートしています) (3)全文索引を利用する フィールドの全文インデックスを作成し、match(...) against(...)を使用して検索します。 注意: この全文インデックス作成方法は英語の単語にのみ有効で、中国語の文字には適していません。中国語の文字をサポートするには、MySQL 構成ファイルにいくつかの構成変更を加える必要があります。 (4)追加の全文検索エンジンを使用して解決する Lucene、Solr、Elasticsearch など。 基本的な原則は、MySQL 構成ファイルの ft_min_word_len=3 を 1 に変更することです。 (この項目が利用できない場合は、直接追加してください)、単語分割の結果を保存するための新しいフィールドを作成し、このフィールドのフルテキスト インデックスを作成します。次に、単語分割モジュールを実装して、「everyone is good」という単語を「everyone is good、everyone is good、every family is good」に分割します。次に、like %% の代わりに match .. against を使用します。クエリ結果は基本的に like の結果と同じですが (単語の分割が適切である場合)、効率は like よりも少なくとも 10 倍高くなります。 要約する これで、MySQL ファジークエリに関するこの記事は終了です。MySQL ファジークエリに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: js のマクロタスクとマイクロタスクについての簡単な説明
>>: Nginx リバース プロキシと負荷分散を実装する方法 (Linux ベース)
いくつかの理由(好奇心も含む)から、数週間前に Linux デスクトップとして Xfce を使い始め...
主キーとは何ですか?主キーは、テーブル内の各タプル (行) を一意に識別するテーブル内の列です。主キ...
CSS のモジュール ソリューションは、JS のモジュール ソリューションと同じくらい多く存在すると...
ルーティングvue-router4 では API の大部分は変更されていないため、変更点のみに焦点を...
WeChatアプレットでタブバーを設定すると、重要なコンテンツがブロックされ、iPhoneXなどの異...
MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーションに...
これらの仕様は、下位互換性のあるドキュメントを Web 上で公開し、できるだけ幅広いユーザーがアクセ...
目次1. ウェアハウスを使用してhttpd lrzsz解凍ファイルを作成する2. ソースコードファイ...
必要フィールドをクエリする場合、フィールドに同じ値を指定する必要があります。この値はハードコードする...
導入Redis を詳しく説明する必要はありません。インストールと設定を始めましょう。インストールソー...
今日、MySQL データベースをコンピューターに再度インストールしました。システムを再インストールす...
ほとんどの人は、サーバーサイド レンダリング (SSR と呼んでいます) の概念について聞いたことが...
エラー発生: MySQL 5.7 から SQL にデータベースをエクスポートし、それを MySQL ...
次のコマンドを使用してコンテナを作成し、ローカルの /home/dock/Downloads ディレ...
MySQL で、id、a、b の 3 つのフィールドを持つ新しいテーブルを作成します。次のように、同...