1

INNODB がテーブルを構造化する方法を理解していると思います (クラスター化された btree インデックス = PK と行自体を含むリーフを使用して)。同じ原理を使用するセカンダリ インデックス (btree クラスター化インデックス = セカンダリ インデックス) とリーフには、ポインターとして使用される PK が含まれます (これが、2 番目のインデックス ルックアップが必要になる理由です)。

http://www.chenyajun.com/wp-content/uploads/2008/12/3-9.jpg したがって、ソートは INNODB のインデックスに基づいています。

しかし、クラスタリングbtreeインデックスの原則を使用して、INNODBのカバー/複合インデックスを物理的にソートおよび保存する方法を本当に理解できません。

4

2 に答える 2

0

この記事は興味深いかもしれません:)

http://www.xaprb.com/blog/2006/07/04/how-to-exploit-mysql-index-optimizations/

于 2011-02-09T17:52:30.033 に答える
0

リンク先の図で説明できます。

  • (一般的な) セカンダリ キー インデックス アクセスは、最初に非クラスター化インデックスを走査し、主キーの値を見つけてから、主キーを走査してデータを見つけます。別の言い方をすれば、データを見つけるための 2 つの独立したツリー ルックアップです。

  • カバリング インデックスは、必要なすべてのデータがセカンダリ キー インデックスに格納される場所です。通常、1 つの列をインデックスの後ろにピギーバックするだけです。これは、SELECT ステートメントの一部として要求する唯一の列です。

于 2011-02-27T16:22:48.620 に答える