포스트

테이블 조인 설정 변경으로 쿼리 튜닝

테이블 조인 설정 변경으로 쿼리 튜닝

튜닝에 앞서…

MySql과 MariaDB에서 두 개 테이블의 데이터를 결합하는 조인 알고리즘은

대부분 중첩 루프 조인으로 풀린다. 물론 성능 최적화를 위해 다른 조인

알고리즘을 제공하기는 하지만, 상당수의 조인 방식은 여전히 중첩루프 조인에

기반을 둔다.



튜닝 전

1

위 쿼리문에서 보면 서브쿼리 쪽에 많은 join문이 있는걸 알 수 있다.

그리고 WHERE 절에 여러 조건을 추가했다.

여기서 든 생각 처음에 최대한 DB 스캔 범위를 줄이면 어떨까?



튜닝 전

1

위 쿼리문에서는 튜닝 전과 다르게 처음 부터 DB 스캔범위를 줄여나갔다.

뿐만 아니라 JOIN문 내에서 서브쿼리를 활용해 필요한 컬럼만 선택했다.



튜닝 전 후 비교

약 1초가 줄어듬을 확인할 수 있었다.

  튜닝 전 튜닝 후
1회 4.208 3.498
2회 3.893 1.682
3회 3.990 3.201
4회 3.923 3.204
5회 3.867 3.265
평균 3.98 2.97

추가적으로 EXPLAIN 결과 또한 엄청 줄어든것을 확인할 수 있다.

튜닝 전


튜닝 후

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.