결론만 말하면 아니다
예를들어 아래 두 테이블이 있다.
Message
- id (PK)
- contents
- send_time
- created_at
Target
- id (PK)
- message_id (FK)
- key
Message와 Target은 Fk 관계이다.
Message와 Target을 Join한 경우 FK에 인덱스를 생성한것과 생성하지 않은것에 대한 차이를 알아보자
아래는 Target 테이블에 message_id 컬럼에 인덱스를 걸지 않은 경우의 Query Explain이다

Seq Scan으로 쿼리를 하는것을 볼 수 있다.
Seq Scan(Sequential Scan)은 테이블의 모든 데이터를 하나씩 확인하는 방법이다. 주로 인덱스가 없는 column을 조건으로 검색할 경우에 사용된다.
실행 시간도 7.357ms 이다
아래는 Target 테이블에 message_id 컬럼에 인덱스를 걸었을때의 Query Explain이다

Index Scan을 하는것을 볼수 있다
실행 시간도 0.081ms