インデックスはクエリの速度に重大な影響を与えます。インデックスを理解することは、実際の操作中にテーブル内のどのフィールドをインデックスとして選択する必要があるかということの出発点でもあります。インデックスをより効率的に使用するには、インデックスを作成するときに、どのフィールドにインデックスを作成するか、どの種類のインデックスを作成するかを考慮する必要があります。 7 つの原則があります。
1.一意のインデックスを選択します
一意のインデックスの値は一意であり、インデックスを通じて特定のレコードをより迅速に特定できます。たとえば、学生テーブルの中学校 ID は一意のフィールドです。このフィールドに一意のインデックスを確立すると、特定の学生の情報を迅速に特定できます。名前を使用すると、同じ名前が存在する可能性があり、クエリの速度が遅くなります。
2.並べ替え、グループ化、ユニオン操作が頻繁に必要なフィールドのインデックスを作成します
ORDER BY、GROUP BY、DISTINCT、UNION などの操作が頻繁に必要なフィールドの場合、並べ替え操作は多くの時間を無駄にします。インデックスを作成すると、並べ替え操作を効果的に回避できます。
3.クエリ条件としてよく使用されるフィールドのインデックスを作成します
フィールドがクエリ条件としてよく使用される場合、このフィールドのクエリ速度はテーブル全体のクエリ速度に影響します。したがって、このようなフィールドにインデックスを作成すると、テーブル全体のクエリ速度が向上します。
4.インデックスの数を制限する
インデックスの数は、常に良いとは限りません。各インデックスにはディスク領域が必要になります。インデックスが増えると、より多くのディスク領域が必要になります。テーブルが変更された場合、インデックスを再構築して更新するのは面倒です。インデックスが増えると、テーブルの更新に時間がかかります。
5.少量のデータのインデックスを使用するようにしてください
インデックス値が非常に長い場合、クエリ速度に影響します。たとえば、CHAR (100) 型フィールドの全文検索は、CHAR (10) 型フィールドよりも確実に時間がかかります。
6.プレフィックスを使用してインデックスを作成してみてください
インデックス フィールドの値が非常に長い場合は、値のプレフィックスを使用してインデックスを作成するのが最善です。たとえば、TEXT および BLOG タイプのフィールドの全文検索は時間の無駄です。フィールドの最初の数文字のみを取得する場合、取得速度を向上させることができます。
7.使用されなくなったインデックス、またはめったに使用されないインデックスを削除します
テーブル内のデータが大幅に更新された後、またはデータの使用方法が変更された後、元のインデックスの一部が必要なくなる可能性があります。データベース管理者は、更新操作に対するインデックスの影響を軽減するために、これらのインデックスを定期的に特定して削除する必要があります。
注: インデックスを選択する最終的な目的は、クエリを高速化することです。上記の原則は最も基本的なガイドラインですが、上記のガイドラインに固執することはできません。読者の皆さんも、今後の学習や仕事において実践を続けてください。アプリケーションの実態に基づいて分析・判断し、最適なインデックス方法を選択します。
たとえば、ショッピングモールの会員カードシステムを作成しているとします。このシステムには会員テーブルがあります (大まかに次のフィールドがあります):
会員番号 INT
会員名 VARCHAR(10)
会員 ID 番号 VARCHAR(18)
会員電話番号 VARCHAR(10)
会員住所 VARCHAR(50)
メンバー発言情報TEXT
このメンバー番号を主キーとして、インデックスを構築したい場合はPRIMARY
メンバー名を使用します。インデックスを構築したい場合は通常のINDEX
メンバーID番号です。インデックスでは、UNIQUE (ユニークで重複は許可されません) を選択できます。
メンバーのコメントのインデックスを作成する必要がある場合は、全文検索の FULLTEXT を選択できます。
上記の 7 つのポイントは、インデックスをより効率的に使用するためのものであり、皆様のお役に立てれば幸いです。
関連する推奨事項:
MySQL の Btree インデックスとハッシュ インデックスの違い
以上がデータベースのインデックスをより効率的に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。