참조 무결성과 조회 속도는 별개야
... REFERENCES parent(id)를 선언하면 부모 쪽 기본 키는 색인이 있지만 자식의 외래 키 열에는 자동 색인이 생기지 않아. 제약은 관계를 지키고, 색인은 그 관계를 따라 찾는 비용을 줄이는 서로 다른 장치야.
부모 삭제와 자식 조회를 생각해
부모를 지우거나 키를 바꿀 때 PostgreSQL은 참조하는 자식이 있는지 확인해야 해. 자식 행이 적으면 차이가 작지만 큰 테이블에서는 외래 키 색인이 잠금 시간과 조회 비용을 크게 줄여.
중복 색인은 만들지 마
복합 색인의 첫 열이 이미 외래 키라면 별도 단일 열 색인이 필요 없을 수 있어. 현재 색인과 실제 JOIN·삭제 경로를 함께 확인해.