inflearn logo
강의

講義

知識共有

非専門家でも理解できるMySQL性能最適化入門/実践(SQLチューニング編)

[実習] ユーザー名で特定の期間に作成された記事を検索するSQL文のチューニング

쿼리 결과 그리드에서 TYPE, POSSIBLE_KEYS 다릅니다

解決済みの質問

80

minuk

投稿した質問数 1

0

image.pngimage.png

 상단의 스크린샷이 저의 로컬에서 확인된 거구요

아래는 선생님의 결과 입니다

KakaoTalk_20251028_060414532_01.jpg.webp

 

KakaoTalk_20251028_060414532.jpg.webp

 

[실습] 유저 이름이름 특정기간에 작성된 글 검색하는 SQL문 튜닝하기

3:30초 구간 입니다

 

똑같이 했는데 왜 TYPE과 KEY 변경되어 있을까요?

제가 잘못하고 있는건가요? 따라 쓴거도 아니고 NOTION에 있는걸 복붙 했습니다 ;;;

 

sql mysql dbms/rdbms query-tuning

回答 3

0

jscode

안녕하세요 ! 질문 잘해주셨어요 !

질문해 주신 내용에 대해 답변드려볼게요!

 

"똑같이 했는데 왜 TYPE과 KEY 변경되어 있을까요?제가 잘못하고 있는건가요?"

-> 전혀 잘못하신 게 아니에요 !

더미 데이터를 생성하기 위해 RAND() 함수를 사용했었는데,

이로 인해 데이터 분포가 매번 달라져 MySQL 옵티마이저의 실행 계획이 약간 달려져서 그런거예요 !

실행 계획이 조금 다르더라도 인덱스를 잘 사용하고 있으니 이상이 없어요 :)

 

추가로 궁금하신 점 있으시면 또 질문 남겨주세요~~

0

minuk

image.png

같은 MySQL VER 8버젼 이상입니다 음 세팅값이라... 우선 뭐 알겠습니다

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. minuk님이 질문해주신 내용에 대해 답변 드리겠습니다.

최적화된 쿼리 결과가 강사님과 다르게 나오는 것은 여러 이유로 인해 발생할 수 있습니다. SQL 실행 계획(EXPLAIN)에서 TYPEKEY가 변경되어 있는 것에 대한 이유를 파악하기 위해 다음 사항을 고려해 보세요:

1. 데이터베이스 구조 및 인덱스:

  • 강사님과 동일한 데이터베이스 구조와 인덱스가 설정되어 있는지 확인하세요. 인덱스의 유무나 차이에 따라 TYPEKEY가 다르게 나타날 수 있습니다.
  • 관련 게시물: 질문이있습니다.에서는 인덱스 및 SQL 최적화에 관한 내용을 확인하실 수 있습니다.

2. 데이터의 차이:

  • 데이터베이스에 저장된 데이터의 양이나 분포가 실행 계획에 영향을 줄 수 있습니다. 데이터 분포가 다르면 EXPLAIN 결과도 다르게 나올 수 있습니다.

3. MySQL 버전 차이:

  • 사용 중인 MySQL 또는 기타 SQL 엔진의 버전이 강사님과 다른 경우, 동일한 쿼리에 대해서도 다른 최적화 전략을 사용할 수 있습니다.

4. 쿼리 캐싱:

  • 쿼리 캐시나 기타 최적화 옵션 설정이 달라서 실행 계획에 차이가 있을 수 있습니다.

5. 환경 설정:

  • 로컬 환경과 강사님의 실행 환경의 설정이 다를 수 있습니다. 예를 들어, SQL 모드나 세팅 값(예: optimizer_switch)에 따라 실행 계획이 달라질 수 있습니다.

가능한 한 강사님의 환경과 동일하게 설정하고 테스트해 보는 것도 방법입니다. 데이터와 환경의 미세한 차이가 실행 계획에 영향을 미칠 수 있으므로 주의깊게 비교해 보시길 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

minuk

음 .... 처음부터 강의를 듣고 있었고 중복된 테이블이 없는지 확인 했으며 ,drop table 쿼리도 실행하고 새로 생성해서 했습니다.

 

뭔가 제가 잘못 하고 있는것 같은데 추상적인 답변 말고 확실한 답변 알고 계실까요?

0

minuk

이유를 알았네요 ㄷㄷㄷ ;; 그럼 수고하세요

큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.

0

34

2

강의 내용을 블로그에 정리해도 괜찮을까요?

1

120

2

여러 테이블 조인시 where 절이 필요한가? 에 대해 질문있습니다.

0

143

2

풀 인덱스 스캔 질문있습니다.

0

119

2

멀티컬럼인덱스 질문있습니다.

0

121

2

쿼리 튜닝 관련 질문 (limit)

0

119

1

페이지기반 페이지네이션 쿼리를 최적화하고 싶습니다.

0

168

2

측정 시간 차이

0

200

2

[실습] 인덱스 직접 설정해보기 / 성능 측정해보기 강의에서요.

0

195

1

커버링 인덱스(Covering Index)강의에서 질문이있습니다.

0

183

2

한 번에 너무 많은 데이터를 조회하는 SQL문 튜닝하기 질문입니다

0

258

3

ORDER BY 튜닝관련 문의

0

200

2

강의 질문 있습니다

0

118

2

인덱스 많은 테이블에서 데이터 많아질 수록 insert 속도 증가

0

442

3

MariaDB 사용 시 EXPLAIN ANALYZE 이용 불가 문의

1

590

2

SQL 튜닝에 대한 사례나 Best Practice 등을 모은 자료를 알려주실 수 있나요?

0

320

2

혹시 심화 수업은 계획이 없으신가요..?

0

295

1

jpa쿼리튜닝 팁이 궁금합니다.!

0

448

1

특정 부서에서 최대 연봉을 가진 사용자 조회 sql 쿼리 질문

4

246

1

created_at 에 index 거는것과 지속적인 데이터 증가

0

424

2

WHERE A OR B 에서 인덱스 걸기

0

377

2

질문이있습니다.

1

311

1

테이블에 기본키가 없을때

0

381

1

질문있어요!!!

1

214

1