JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

성능 개선을 위한 MySQL 구조 파악 / SQL 튜닝의 핵심

JSCODE 박재성
JSCODE 박재성
2025-12-02
author
JSCODE 박재성
category
MySQL
createdAt
Dec 2, 2025
series
비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
slug
mysql-architecture-and-sql-tuning-core
type
post
updatedAt
Dec 2, 2025 10:54 AM
❓
MySQL 구조는 왜 갑자기 파악하나요? → 어떤 부분에서 MySQL의 성능을 많이 잡아 먹는지, 어떤 요인이 주로 문제를 일으키는 지 파악할 수 있어야 한다. 그 원인을 파악하기 위해서는 MySQL 구조를 알아야만 한다.
 

✅ MySQL의 아키텍처

notion image
MySQL의 아키텍처를 간단하게 표현하자면 위와 같다. 이 아키텍처에서 SQL문이 어떻게 실행되는 지 과정을 알아보자.
  1. 클라이언트가 DB에 SQL 요청을 보낸다.
  1. MySQL 엔진에서 옵티마이저가 SQL문을 분석한 뒤 빠르고 효율적으로 데이터를 가져올 수 있는 계획을 세운다. 어떤 순서로 테이블에 접근할 지, 인덱스를 사용할 지, 어떤 인덱스를 사용할 지 등을 결정한다. (옵티마이저가 세운 계획은 완벽하지 않다. 따라서 SQL 튜닝이 필요하다.)
  1. 옵티마이저가 세운 계획을 바탕으로 스토리지 엔진에서 데이터를 가져온다. (DB 성능에 문제가 생기는 대부분의 원인은 스토리지 엔진으로부터 데이터를 가져올 때 발생한다. 데이터를 찾기가 어려워서 오래 걸리거나, 가져올 데이터가 너무 많아서 오래 걸린다. SQL 튜닝의 핵심은 스토리지 엔진으로부터 되도록이면 데이터를 찾기 쉽게 바꾸고, 적은 데이터를 가져오도록 바꾸는 것을 말한다.)
  1. MySQL 엔진에서 정렬, 필터링 등의 마지막 처리를 한 뒤에 클라이언트에게 SQL 결과를 응답한다.
 

✅ SQL 튜닝의 핵심

자, 다시 한 번 정리하자. SQL 튜닝에 있어서 핵심은 2가지이다.
 
  1. 스토리지 엔진에서 데이터를 찾기 쉽게 바꾸기
  1. 스토리지 엔진으로부터 가져오는 데이터의 양 줄이기
 
그럼 이 2가지를 어떻게 해결할 수 있을까?
여러가지 방법이 많지만 가장 많이 활용되는 방법이 인덱스 활용이다. 인덱스가 어떤 개념이길래 위 2가지 문제를 해결할 수 있는 지 알아보자.
 
단순히 인덱스만 적용한다고 해서 무조건 해결되는 게 아니다. 인덱스를 ‘적절하게’ 활용해야만 DB 성능이 개선된다. 이 방법에 대해 깊이 있게 다루기 전에 ‘인덱스’라는 개념에 대해 제대로 한 번 정리하고 넘어가자.
 
 
author
category
MySQL
createdAt
series
비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
slug
type
series-footer
updatedAt
Jan 12, 2026 12:04 AM
📎
이 글은 비전공자도 이해할 수 있는 Docker 입문/실전 강의의 수업 자료 중 일부입니다.