ホームページ > データベース > mysql チュートリアル > インデックス作成により MySQL の複数列 LIKE クエリのパフォーマンスが向上しますか?

インデックス作成により MySQL の複数列 LIKE クエリのパフォーマンスが向上しますか?

Mary-Kate Olsen
リリース: 2024-12-13 02:32:10
オリジナル
917 人が閲覧しました

Can Indexing Improve MySQL's Multi-Column LIKE Query Performance?

MySQL での複数列 LIKE クエリの最適化

複数の列で LIKE 句を使用する遅い SELECT クエリは、パフォーマンスのボトルネックになる可能性があります。この記事では、インデックス作成によってクエリ速度が向上し、ディスク使用量と INSERT/DELETE のパフォーマンスに関する懸念に対処できるかどうかを検討します。

インデックスは LIKE パフォーマンスを向上させることができますか?

残念ながら、インデックスは左から始まる固定数の文字にインデックスを付けることによって機能するため、MySQL の LIKE クエリには効果がありません。 LIKE '%text%' を使用すると、ターゲット文字列の前に任意の量のテキストを置くことができ、インデックスの使用を防ぐことができます。

代替アプローチ

LIKE を使用する代わりに、 FTS (全文検索) を検討してください。 FTS は MyISAM テーブルでサポートされており、部分的な文字列一致の効率的な検索を可能にします。 MyISAM 以外のテーブルの場合、単語を ID にマップする別のインデックス テーブルを使用して独自のインデックス システムを実装すると、FTS 機能を複製できます。

ディスク使用量と INSERT/DELETE のパフォーマンス

FTS インデックス作成により、ディスク使用量が増加する可能性があります。ただし、INSERT/DELETE 操作への影響は最小限です。これは、挿入ではインデックスに新しい単語が追加されるだけであり、これはトランザクションの一部として実行されるのに対し、削除では後で削除するために単語にマークが付けられるためです。

Update

MySQL 5.6 InnoDB テーブルの FTS サポートを導入し、さまざまなテーブル タイプで LIKE パフォーマンスを向上させる堅牢なオプションを提供します。

以上がインデックス作成により MySQL の複数列 LIKE クエリのパフォーマンスが向上しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート