少し質問があります。プライマリ インデックスとセカンダリ インデックスのパフォーマンスの違いは何ですか? この違いの原因は何ですか?
私はグーグルで調べており、セカンダリ インデックスが別のテーブルに格納されていることがわかったので、これによりすべての操作が遅くなります..しかし、このパフォーマンスの低下を正当化する他の理由がいくつかありますか?
どうもありがとう
少し質問があります。プライマリ インデックスとセカンダリ インデックスのパフォーマンスの違いは何ですか? この違いの原因は何ですか?
私はグーグルで調べており、セカンダリ インデックスが別のテーブルに格納されていることがわかったので、これによりすべての操作が遅くなります..しかし、このパフォーマンスの低下を正当化する他の理由がいくつかありますか?
どうもありがとう
クラスター化されたテーブルは、「ヒープ」部分のないBツリーです。行はクラスター化インデックス(主キー)のBツリー構造に直接格納されます。Bツリーのノードは分割または合体できるため、物理的な場所や行が変更される可能性があります。そのため、セカンダリインデックスから行への単純な「ポインタ」を設定できないため、セカンダリインデックスには次の完全なコピーを含める必要があります。行を確実に識別できるようにするためのプライマリインデックスフィールド。
これは、Oracle、MS SQL Serverに当てはまり、InnoDBにも当てはまります。
つまり、クラスター化テーブルのセカンダリインデックスは、ヒープベースのテーブルのセカンダリインデックスよりも「太い」ということです。
インデックスを使用、ルークを引用させてください!:「インデックス編成テーブルとクラスター化インデックスの利点は、ほとんどの場合、2番目のインデックスを必要としないテーブルに限定されます。」
MySQLではストレージエンジンから独立してクラスタリングを選択できないため、これは残念です。