실행 계획에 출력되는 ref 칼럼은 쿼리를 처리하기 위해 선택된 인덱스와 동등 비교 (=) 를 하는 대상을 알려주는 정보로 출력된다.

 

만약 쿼리가 조인으로 처리되고 조인 칼럼이 = 조건이라면 ref 칼럼에는 드리븐 테이블의 조인 칼럼을 나타낼 것이다.

 

ref 칼럼에서 주의해야 하는 건 func 으로 출력되는 것이다. 이는 MySQL 이 내부적으로 칼럼을 변환하는 과정을 거치고 있다는 뜻으로, 성능의 저하를 유발하기 때문이다.

 

ref 칼럼에서 func 으로 출력되는 에시는 다음과 같다:

  • 이렇게 칼럼을 산술식으로 계산할 때 뿐만 아니라, 타입 변환을 해서 조인하는 경우나 함수를 사용해서 변환하는 경우에도 func 이 발생할 수 있다.
  • func 이 나오지 않도록 하려면 설계 단계에서 주의하거나 함수 사용을 피하거나 다른 인덱스를 이용하거나 하는 식의 우회하는 처리가 필요하다.

 

 

실행 계획에서 쿼리를 처리하는 선택된 인덱스가 상수값과 비교된다면 ref 칼럼으로는 const 로 출력될 것이다.

+ Recent posts