Skip to content

MySQL ‐ MySQL Horizontal Scaling

woojin.jang edited this page Apr 2, 2026 · 2 revisions

MySQL - MySQL Horizontal Scaling

Replication & Distribution

스크린샷 2026-04-02 22 51 01
쓰기 경로 : Client → Master DB → Binary Log → Replica DB ← Relay Log
  • 클라이언트가 INSERT, DELETE, UPDATE같은 쓰기 요청을 보낸다.
  • Master DB가 해당 트랜잭션을 처리하고 커밋한다.
  • 변경 사항을 Binary Log에 기록한다. → 이 때, Binary Log는 Master의 모든 변경 이벤트를 기록한다.
  • Replica가 Binary Log를 읽어 Relay Log에 저장한다. → 이 때, Relay Log는 Master의 Binary Log를 Replica에서 임시 저장하고 SQL Thread가 소비하게 된다.
  • Replica의 SQL Thread가 Relay Log를 재실행해서 Replica DB에 반영한다.
읽기 경로 : Client → Replica DB
  • Client는 읽기 요청(SELECT)을 직접 Replica DB로 보낸다.

설계 관점에서 주의할 점

⚠️Replication Lag(복제 지연)

  • 네트워크 지연, Master - Replica 간 대역폭, 노드 간 물리적 거리에 의한 요인으로 발생한다.
  • Master 커밋 → Replica 반영까지 비동기 갭이 존재한다.
  • 쓰기 직후 상황에서 데이터를 읽게 되면 데이터의 일관성이 보장되기 어려울 수 있다.

⚠️Replica 단일 장애점

  • Replica가 1대인 경우 읽기 가용성이 저하될 우려가 있기 때문에 다중 Replica를 구성하는 것을 권장한다.
  • Master 장애 시 자동 Failover 메커니즘이 필요하다.

📖 Java

📖 Kotlin

📖 Coroutine

📖 Spring

📖 Spring Security

📖 Spring Batch

📖 Reactive Programming

📖 Database

📖 MySQL

📖 Redis

📖 JPA

📖 QueryDsl

📖 MSA

📖 Kafka

📖 Apache Flink

  • [Apache Flink - Apache Flink Architecture]
  • [Apache Flink - Stream Processing]
  • [Apache Flink - Data Stream API & Window]
  • [Apache Flink - State Management]

📖 HTTP

📖 AWS

📖 Docker

📖 Kubernetes

📖 CI/CD

📖 Nginx

📖 Monitoring🥈

  • [Monitoring - Log Concept]
  • [Monitoring - Log Level & Filter]
  • [Monitoring - Logback]
  • [Monitoring - Log Collection with ELK Stack]
  • [Monitoring - Log Monitoring with Kibana]
  • [Monitoring - Building a Monitoring System with Spring Boot Actuator]
  • [Monitoring - Server Monitoring with Prometheus and Grafana with Discord Alerts]

📖 Test

📖 Effective Java 3/E

📖 Kotlin Academy - Effective Kotlin

📖 Kotlin Academy - 핵심편

📖 스프링으로 시작하는 리액티브 프로그래밍

📖 가상 면접 사례로 배우는 대규모 시스템 설계 기초 1

📖 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2

📖 Clean Code

📖 리팩토링 2판

📖 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식

📖 GraphQL

Clone this wiki locally