2022/06/25
外部キーのインデックス
rails を使用していると,references
で外部キーに対して自動でインデックスが貼られる。しかし,そのインデックスの役割を正しく認識していなかった。
users
テーブルに対してposts
テーブルがuser_id
を持っている時を考える。posts
がuser_id
に対して,インデックスを貼っていない状態で,where 句にuser_id
を指定して検索すると,posts
テーブル全件に対して検索が走る。しかし,user_id
に対してインデックスを貼ることで,検索対象のレコード数が減少し,高速化が見込まれる。