ホームページ  >  に質問  >  本文

innodb が行ポインタをセカンダリ/非クラスター化インデックスに保存しないのはなぜですか?

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

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

P粉038161873P粉038161873404日前550

全員に返信(1)返信します

  • P粉469090753

    P粉4690907532023-09-12 16:06:28

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

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

    より高速な簡単な例: Given

    リーリー

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

    返事
    0
  • キャンセル返事