sql >> データベース >  >> RDS >> Mysql

フルテキストインデックスとは何ですか?いつ使用する必要がありますか?

    データベースでは、インデックスは通常、where句で定義されたものを探すときにパフォーマンスを向上させるために使用されます。ただし、一部のテキストのフィルタリングに関しては、 WHERE TextColumn LIKE '%searchstring%'のようなものを使用する 通常のデータベースインデックスの動作は、列の一部だけでなく、列の「コンテンツ全体」との一致に最適化されるため、検索は遅くなります。具体的には、ワイルドカードを含むLIKE検索では、どのような種類のインデックスも使用できません。

    以下のコメントで述べられているように、MySQLにはMATCH () ... AGAINSTが必要です。 全文索引内を検索するための構文。ところで、これはデータベースベンダーによって異なります。 MS SQLでは、CONTAINSを使用できます したがって、他のデータベースもサポートする予定がある場合は、このことに注意してください。

    フルテキストインデックスは、これらのタイプの列用に最適化されているため、通常のテキストに適しています。非常に単純化:テキストを単語に分割し、テキスト全体ではなく単語にインデックスを作成します。これは、特定の単語を検索する際のテキスト検索ではるかに高速に機能します。



    1. SQLデータ操作言語

    2. Oracle SQL:IN句内で1000を超えるアイテムを使用する方法

    3. サンプルサイズと更新統計の期間:それは重要ですか?

    4. 長いバイナリ(生データ)文字列の保存