안녕하세요? 오랜만에 질답 올리네요...
쿼리를 짜고 있는데 Ctrl + 'L'을 누르니깐 쿼리 비용을 계산해주더라구요.
그래서 30초 이상 돌고 있는 쿼리를 확인해보니깐 Sort쪽에서 비용이 87% 들고있어요.
Sort라는게 어떤건지 궁금하구요,,
지금 쿼리가 어떻게 짜여져있냐면
SELECT A
, B
, C
FROM (
SELECT TABLE_A.A AS A
, TABLE_B.B AS B
, '' AS C
FROM TABLE_A
INNER JOIN TABLE_B
GROUP BY TABLE_A.A
, TABLE_B.B
UNION
SELECT TABLE_A.A AS A
, TABLE_B.B AS B
, TABLE_C.C AS C
INNER JOIN TABLE_B
INNER JOIN TABLE_C
GROUP BY TABLE_A.A
, TABLE_B.B
, TABLE_C.C
) A
INNER JOIN TABLE_D
WHERE
A.A = D.A
A.B = D.B
GROUP BY A, B, C
이런 구조로 되어있습니다.
가장 많은 데이터를 가진 테이블이 5만건정도 있는데 SORT문제는 어떻게 해결해야 하는지 궁금합니다.
고수분들 알려주세요~~
자료를 검색하는 방법중 가장 기본이 정렬입니다.
자료가 정렬되어 있다면 자료를 빠르게 찾을 수 있습니다.(이게 인덱스죠.)
Group by를 하기위해서는 정렬이 필요합니다. 같은 값을 찾아야 하니깐요.
group by 해당열로 정렬이 되어 있다면(인덱스가 존재한다면) 정렬은 필요없습니다.
하지만 위의 쿼리는 JOIN을 하므로 단순히 쿼리의 컬럼만 가지고 판단 할 수는 없습니다