MySQL 쿼리 튜닝의 첫걸음
Medium
Database 는 현대 응용 프로그램의 핵심 부분 중 하나로 비즈니스 프로세스, 웹 애플리케이션, 모바일 앱 등 다양한 분야에서 필수적으로 사용됩니다.
그러다보니 자연스럽게 응용 프로그램의 퍼포먼스는 Database 의 성능에 크게 영향을 받을수 밖에 없는데요
쿼리 튜닝은 Database 성능을 최적화 함으로써 응용 프로그램의 효율성 및 성능을 향상시킬 수 있는 핵심 단계 중 하나입니다.
오늘 소개드릴 글은 이러한 Database 중에 많이 사용되고 있는 MySQL 에 대한 쿼리 튜닝을 설명한 글입니다.
글에서 주요하게 다루고 있는 쿼리 튜닝 커맨드는 다음과 같습니다.
📌 EXPLAIN
MySQL에서 데이터를 찾는 과정을 결과 셋으로 보여주는 명령어 입니다.
EXPLAIN 을 통해 Slow Query 의 발생 지점을 체크할 수 있고, 이 결과를 가지고 Index 구성에 대한 힌트를 발견할 수 있어 쿼리 튜닝에 자주 사용하게 되는 중요한 명령어입니다.
명령어 사용법은 조회할 SELECT 쿼리문 앞에 EXPLAIN 키워드를 붙이면 됩니다.
📌 ANALYZE
EXPLAIN 명령어는 통계정보 테이블을 기반으로 동작합니다.
그렇기 때문에 실행계획을 세울 때 기준이 되는 통계정보 테이블의 데이터가 부정확할 경우 실행계획이 예상했던 것과 달라질 수 있으며 잘못된 쿼리 튜닝을 야기할 수 있습니다.
이를 방지하기 위한 방법 중 하나로 부정확한 통계정보 테이블을 갱신하는 명령어가 바로 ANALYZE 입니다.
📌 EXPLAIN ANALYZE
EXPLAIN 명령어의 경우 통계정보 테이블을 기반으로 유추하여 결과를 반환하는 방식이라 실제 쿼리를 수행하진 않는데요,
EXPLAIN ANALYZE 명령어는 실제 쿼리를 실행해 봄으로써 실행 계획뿐만 아니라 쿼리 수행 시간과 관련된 성능 통계 정보를 함께 제공합니다. 이를 통해 보다 상세하고 정확한 정보를 알 수 있습니다.
다만 Database 에 부담이 갈 수 있는 쿼리에 대해 EXPLAIN ANALYZE 명령어로 분석할 경우 Database 에 영향을 줄 수 있어 운영 환경에서는 사용에 주의를 해야하며,
MySQL 8.0.18 버전부터 사용이 가능합니다.
각 커맨드 수행에 대한 자세한 내용은 공유드린 원문에 기술되어 있으니
관심있으신 분께서는 참고해보시면 좋겠습니다.
📚 원문
https://monday9pm.com/mysql-%EC%BF%BC%EB%A6%AC-%ED%8A%9C%EB%8B%9D%EC%9D%98-%EC%B2%AB%EA%B1%B8%EC%9D%8C-3ff0e5e1c964
다음 내용이 궁금하다면?
이미 회원이신가요?
2023년 10월 10일 오전 10:17
‘똑부(똑똑하고 부지런하기)보다 똑게(똑똑하지만 게으른) 리더가 되라.’ 리더십 코칭에서 빠지지 않는 훈수다. 현장 리더들의 말을 들어보면 실행이 쉽지 않다.
... 더 보기어제 AI 시대의 개발자 토론회에서 내가 대 AI 시대에는 버전관리 시스템이 필요없을 수도 있다고 생각해야한다는 말을 했는데, 그정도로 파격적인 생각을 해야한다는 이야기긴했지만, 진짜 그럴까?를 다시 한 번 생각해봤다.
우선 버전관리 시스템의 목적은 크게 다음 세 가지다.
다
... 더 보기최근에 친구가 추천해준 데일 카네기의 인간관계론을 읽던 중 고액 연봉을 받는 엔지니어들의 특징에 대한 흥미로운 내용이 있었다.
... 더 보기최
... 더 보기