fk 는 테이블간에 관계가 있음을 의미합니다.
fk_column 은 조인 조건에 사용되는 항목일 테구요.
예를 들어 다음과 같은 쿼리가 있다고 할 때
SELECT a.column1 , a.column2 , b.column6 FROM t_a a INNER JOIN t_b b ON a.fk_column = b.pk_column WHERE a.column1 = 'aaa' ;
a.column1 = 'aaa' 조건을 인덱스 스캔으로 찾는데
만약 fk_column 이 INCLUDE 되어 있지 않다면?
이 항목을 조인에 사용하기 위해서는 다시 한번 테이블에 접근해서 가져와야 하는데.
만약 fk_column 이 INCLUDE 되어 있다면?
테이블 접근 없이 인덱스 스캔만으로도 원하는 결과를 얻을 수 있습니다.
"당연히"라는 표현을 쓰셨는데..."당연히"는 100% 를 의미하죠.
당연히 해야 하는 것은 아니고, 위와 같은 쿼리를 자주 사용한다면 하는것이 좋겠지요.
위와 같은 쿼리가 사용되지 않는다면 억지로 할 필요는 없겠네요.