ご存知のとおり、innodb は補助インデックスに主キー値のみを格納します。つまり、行レコードを取得するにはクラスター化インデックス B ツリーを再度走査する必要があります。
余分な検索作業を減らすために、行ポインタをセカンダリ インデックスに直接格納してみてはいかがでしょうか?
P粉4690907532023-09-12 16:06:28
「行ポインタ」はありません。 PRMARY KEY
の列には、データの BTree 内の行を検索する機能があります。
もちろん、PK によるルックアップはおそらく「行ポインター」よりも遅いでしょう。ただし、更新、削除、ブロック分割などはすべて自動的に処理されます。 (Bill のコメントを参照してください。)これにより、コードが簡素化されます。そして、場合によっては、より速くなります。
より高速な簡単な例: Given
リーリーこの例では、インデックス付き BTree が完全な答えを持っているため、データ BTree にアクセスする必要はありません。したがって、インデックスはこの SELECT
の「カバー」と呼ばれます。