innodb が行ポインタをセカンダリ/非クラスター化インデックスに保存しないのはなぜですか?
P粉038161873
P粉038161873 2023-09-11 17:28:42
0
1
638

ご存知のとおり、innodb は補助インデックスに主キー値のみを格納します。つまり、行レコードを取得するにはクラスター化インデックス B ツリーを再度走査する必要があります。

余分な検索作業を減らすために、行ポインタをセカンダリ インデックスに直接格納してみてはいかがでしょうか?

P粉038161873
P粉038161873

全員に返信(1)
P粉469090753

「行ポインタ」はありません。 PRMARY KEY の列には、データの BTree 内の行を検索する機能があります。

もちろん、PK によるルックアップはおそらく「行ポインター」よりも遅いでしょう。ただし、更新、削除、ブロック分割などはすべて自動的に処理されます。 (Bill のコメントを参照してください。)これにより、コードが簡素化されます。そして、場合によっては、より速くなります。

より高速な簡単な例: Given

リーリー

この例では、インデックス付き BTree が完全な答えを持っているため、データ BTree にアクセスする必要はありません。したがって、インデックスはこの SELECT の「カバー」と呼ばれます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート