複合インデックス
複数の列を決まった順序で並べたインデックス。まず一つ目の列で、次に二つ目の列でソートされる。姓で並べ、同じ姓の中で名で並べる電話帳と同じだ。
だから最も重要な規則は、最左プレフィックスが効くことだ。(customer_id, date)のインデックスは、customer_idだけの検索と両方を使う検索には効くが、dateだけで絞り込む検索には効かない。つまり列の順序は細部ではなく設計判断である。経験則としては、等価条件を先に、範囲指定とソートを後に置き、自由に選べるなら選択性の高い列を前に置く。うまく設計した複合インデックス一つで、単一列インデックス三つ分を置き換えられることも多く、さらにインデックスオンリースキャンも可能になる。データベースによっては、使われない先頭列をスキップスキャンで飛ばせるが、当てにしないほうがいい。