본문 바로가기

🏢 DB/🔑 RDB3

인덱스와 관련된 몇 가지 SQL 튜닝 예제 (결합 인덱스, 인덱스 사용할 때 느린 경우, 인덱스가 없는 경우 등) 이 글은 책 업무에 바로 쓰는 SQL 튜닝 4,5 장 Github repo 예제, 하단 reference 참고했습니다. 저작권 문제 발생 시 게시물이 비공개될 수 있습니다. 잘못된 내용이 있다면 편하게 말씀해주세요. 이전 글 MySQL 실행 계획과 결과 컬럼 설명 (MySQL EXPLAIN Output Format)에서 MySQL 실행 계획과 결과를 알아보았다. 이번 글에선 실행 계획을 활용하여 인덱스와 관련된 몇 가지 SQL 튜닝 예제를 살펴보고자 한다. Case 1 : 결합 인덱스 순서 고려 없이 사용하는 SQL문 사원 테이블과 index 구성은 아래와 같다. 사원 테이블에서 성(Family Name)과 성별(Sex) 순서로 그루핑하여 몇 건의 데이터가 있는지 구분하고 싶다. 다시 말해 성이 김씨인 .. 2022. 5. 19.
MySQL 실행 계획과 결과 컬럼 설명 (MySQL EXPLAIN Output Format) 이 글은 책 Real Mysql 8.0 10장, 업무에 바로 쓰는 SQL 튜닝 3장과 Github repo의 예제, 하단 Reference 참고했습니다. 저작권 문제 발생 시 게시물이 비공개될 수 있습니다. 잘못된 내용이 있다면 편하게 말씀해주세요. 실행 계획(explain)이란? 실행 계획(explain)은 클라이언트가 MySQL 서버에 요청한 SQL문을 어떻게 데이터를 불러올 것인지에 관한 계획, 경로를 의미한다. 실행 계획 정보를 활용하여 SQL 튜닝을 할 수 있다. 단, 실제 수행 순서가 아닌 MySQL의 통계 정보를 기반으로 계산한 예측값이다. 실제값으로 실행 결과를 보려면 옵션을 추가해야한다. 실행 계획 예제 설명 아래에서 살펴볼 예제는 책 업무에 바로 쓰는 SQL 튜닝 3장의 저장소를 참고하.. 2022. 5. 14.
MySQL Server 아키텍처와 스레딩 이 글은 책 Real Mysql 8.0 4장, 업무에 바로 쓰는 SQL 튜닝 2장과 하단 Reference 참고했습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻 간단하게 MySQL Server의 아키텍처와 스레딩을 살펴보고자 한다. MySQL Server 아키텍처 MySQL 서버 아키텍처는 어떻게 되어 있을까? 두 가지 관점(SQL 쿼리 실행했을 때, MySQL 서버 구성요소)으로 살펴보자. 1. SQL 쿼리 실행 구조의 아키텍처 클라이언트가 SELECT * FROM 학생; 쿼리를 실행했다고 가정하자. 해당 SQL 문은 아래와 같은 구조로 실행된다. 파서(parser) : 사용자 요청한 SQL를 쪼개 토큰으로 분리하고 트리 형태의 구조로 만든다. 이때 기본 문법 오류를 확인한다 전처리기(prepr.. 2022. 5. 12.