インデックスとは何ですか?
#MySQL のインデックスの公式定義は次のとおりです。 インデックス (インデックス) は、MySQL がデータを効率的に取得するのに役立つデータ構造です。これは単純に、迅速な検索と並べ替えが可能なデータ構造として理解できます。 Mysql インデックスは主に、B Tree インデックスと Hash インデックスの 2 つの構造があります。通常、インデックスという場合は、特に指定がない限り、B ツリー構造で構成されたインデックス (B Tree インデックス) を指します。
インデックスの種類
インデックスには、ハッシュ、BTREE、全文インデックスなど、さまざまな種類があります。実際、どの種類であっても、データを迅速に検索するためのアルゴリズム。 たとえば、ハッシュ インデックス、キーと値の形式、最も単純な本の目次も同様です。 本がある場合、記事のタイトルがわかっているので、読むためにこの記事を見つける必要がありますが、目次がない場合は、タイトルを見つけるために本全体に目を通さなければなりません。 ただし、タイトルが単独の場合は、それをキーとして抽出し、ページ番号を値として使用すると、コンテンツをすばやく見つけることができます。 明らかに、本の冒頭の目次は数ページを占め、索引の作成にもリソースが消費されます。 BTREE インデックスは別のアルゴリズムであり、さまざまなビジネス シナリオで対応するインデックスを使用するとより効率的になります。 新華辞典の目次が通常の書籍の目次と異なるのと同様に、新華辞典ではピンインや部首の検索方法を使用して、単語が掲載されているページをすぐに見つけることができます。 「インデックス」の種類ここでは説明しませんが、全文インデックスなどもあります。たとえば、solr や elasticsearch で使用されるアルゴリズムを学ぶことができます。 #インデックスの概念インデックスの本質: インデックスはデータベース テーブル内のフィールド値の複製です。このフィールドはインデックスのキーと呼ばれます。
インデックスはまた、テーブル。このテーブルには主キーとインデックス フィールドが格納され、エンティティ テーブルのレコードを指します。
インデックス 多くの場合、複雑なデータ構造 (二重リンク リスト、B ツリー/B ツリー、ハッシュ) を通じて実装されます。
MyISAM ストレージ エンジン テーブルはプライマリ インデックスをサポートし、InnoDB ストレージ エンジン テーブルはクラスター化インデックス (プライマリ インデックス) と非クラスター化インデックスをサポートします。クラスター インデックス (補助インデックス) インデックスの最適化には
が使用されます。インデックスの長所と短所@利点:
MySQL インデックスの確立は、MySQL を効率的に運用するために非常に重要であり、MySQL の検索速度を大幅に向上させることができます。
グループ化句とソート句でのデータ取得により、クエリ時間内のグループ化とソートにかかる時間を短縮できます (データベース レコードの順序が変更されます)
テーブル接続の接続条件を高速化できます テーブルは直接テーブルへの接続
@短所:
ただし、インデックスを過剰に使用するとインデックスの不正使用が発生し、取得速度が速くなり、テーブルの更新速度が低下します。
例:テーブルを追加、削除、変更、クエリする場合、MySQL はデータを保存するだけでなく、インデックス ファイルも保存する必要があります。インデックスの作成には、インデックス ファイルのディスク領域が占有されます。
インデックスの作成には時間がかかります。データとしてインデックスを作成および維持します。量の増加に応じて増加します。
以上がmysqlインデックスとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。