log

日記です

クラスターインデックス

プライマリーキーのインデックスには、データ実体が入っているということを知った!ためになった!InnoDBからっぽい。

-- すごく早い(クラスターインデックス)
select * from sometable where pk_id = 1;

-- 同じくすごく早い(カバリングインデックス)
select index_key from sometable where index_key = 123;

-- 普通に早いけどちょっと劣る
-- index_keyで対象探す、primary_keyからデータ実体を探すの2step必要。
select * from sometable where index_key = 123;

その事象どっかで見たなーと思ったら、チューニンガソン(MySQLの巻)優勝者のブログに書いてあった。
# そんなの意識するほどカリカリにチューニングする事ないだろ、とか思いつつ仕組みを理解できたので満足。
後、index_keyに加えてprimary_id も各インデックスに乗っかってるのでカバリングの対象。index_keyとprimary_idがペアの二分木のデータ構造で、データの実体とprimary_idがリンクされてる思えばおk。