쿼리 튜닝 관련 질문 (limit)
117
작성한 질문수 24
안녕하세요 강사님 좋은 강의 정말 감사드립니다. 실습 따라면서 튜닝을 익혀가고있는데 이번 강의에서 이해되지 않는 부분이 있어 질문 남깁니다.
일단 저는 MariaDB를 이용하여 실습을 하고 있습니다 죄송합니다 ㅠ
-- 튜닝 전 쿼리
SELECT st.student_id, st.name, AVG(sc.score) AS average_score
FROM students st
JOIN scores sc ON st.student_id = sc.student_id
GROUP BY
st.student_id, st.name, sc.year, sc.semester
HAVING
AVG(sc.score)=100
AND sc.year=2024
AND sc.semester=1;
-- 튜닝 쿼리
SELECT st.student_id, st.name, AVG(sc.score) AS average_score
FROM students st
JOIN scores sc ON st.student_id = sc.student_id
WHERE sc.year=2024
AND sc.semester=1
GROUP BY
st.student_id, st.name, sc.year, sc.semester
HAVING
AVG(sc.score)=100;두 쿼리 실행 속도에 별로 차이가 없어서
1) students, scores 두 테이블 각각 데이터 300만개로 늘리고
2) 두 쿼리 모두 동일하게 limit 10을
붙여줬더니 갑자기 성능 차이가 엄청나게 났습니다.
-- 튜닝 전 쿼리
SELECT st.student_id, st.name, AVG(sc.score) AS average_score
FROM students st
JOIN scores sc ON st.student_id = sc.student_id
GROUP BY
st.student_id, st.name, sc.year, sc.semester
HAVING
AVG(sc.score)=100
AND sc.year=2024
AND sc.semester=1
LIMIT 10;
-- 튜닝 쿼리
SELECT st.student_id, st.name, AVG(sc.score) AS average_score
FROM students st
JOIN scores sc ON st.student_id = sc.student_id
WHERE sc.year=2024
AND sc.semester=1
GROUP BY
st.student_id, st.name, sc.year, sc.semester
HAVING
AVG(sc.score)=100
limit 10;
제가 궁금한 것은 limit 10을 붙이면 튜닝을 하든 안하든 실행 속도가 더 줄어들어야 할 것 같은데 튜닝 전 쿼리가 갑자기 1분넘게 소요되더라고요.
튜닝 후 쿼리는 limit을 붙이나 안붙이나 별 차이가 없는데 튜닝 전 쿼리는 왜 limit을 붙이면 갑자기 성능이 엄청나게 저하되는걸까요..??
확인해주시고 답변 주시면 많은 도움 될 것 같습니다 감사합니다!
답변 1
0
안녕하세요 chaelynjang님! 강의 잘 봐주셔서 감사합니다:)
질문 내용이 아주 흥미롭고 저도 이유가 궁금하네요!
같이 쿼리문 분석 도와드리기 위해 아래 카톡 링크로
실행 계획 결과(EXPLAIN)와 실행 세부 계획(EXPLAIN ANALYZE) 결과값
캡쳐해서 보내주실 수 있을까요~??
큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.
0
6
1
쿼리 결과 그리드에서 TYPE, POSSIBLE_KEYS 다릅니다
0
78
3
강의 내용을 블로그에 정리해도 괜찮을까요?
1
117
2
여러 테이블 조인시 where 절이 필요한가? 에 대해 질문있습니다.
0
141
2
풀 인덱스 스캔 질문있습니다.
0
117
2
멀티컬럼인덱스 질문있습니다.
0
119
2
페이지기반 페이지네이션 쿼리를 최적화하고 싶습니다.
0
165
2
측정 시간 차이
0
197
2
[실습] 인덱스 직접 설정해보기 / 성능 측정해보기 강의에서요.
0
193
1
커버링 인덱스(Covering Index)강의에서 질문이있습니다.
0
181
2
한 번에 너무 많은 데이터를 조회하는 SQL문 튜닝하기 질문입니다
0
255
3
ORDER BY 튜닝관련 문의
0
198
2
강의 질문 있습니다
0
116
2
인덱스 많은 테이블에서 데이터 많아질 수록 insert 속도 증가
0
439
3
MariaDB 사용 시 EXPLAIN ANALYZE 이용 불가 문의
1
586
2
SQL 튜닝에 대한 사례나 Best Practice 등을 모은 자료를 알려주실 수 있나요?
0
317
2
혹시 심화 수업은 계획이 없으신가요..?
0
292
1
jpa쿼리튜닝 팁이 궁금합니다.!
0
447
1
특정 부서에서 최대 연봉을 가진 사용자 조회 sql 쿼리 질문
4
243
1
created_at 에 index 거는것과 지속적인 데이터 증가
0
420
2
WHERE A OR B 에서 인덱스 걸기
0
372
2
질문이있습니다.
1
306
1
테이블에 기본키가 없을때
0
376
1
질문있어요!!!
1
208
1





