반응형 MySQL10 Replica Lag이 무엇인지, 그리고 개선! 새로 이직한 회사에서 replica lag 문제를 개선하라는 테스크를 받게 되었다. 이 과정에서 분석 내용과 어떻게 해결 했는지를 공유하고자 한다. Replica Lag이란?우선 replica lag이 무엇인지 알아보자. 레플리카 렉이란 데이터 베이르 Replication 환경에서 마스터 서버의 데이터 변경 사항이 slave 또는 replica 서버에 반영되는데 걸리는 시간 지연을 의미한다.복제는 즉시 (real-time)으로 이루어지지 않고 항상 약간의 시간 지연이 발생할 수 있다. 랙이 발생하는 원인은 보통 다음과 같다.네트워크 지연레플리카 처리 지연 읽기 부하 : 레플리카 서버에 과도한 읽기 쿼리가 몰려 마스터로부터 받은 변경 사항을 적용하는 작업 (SQL Thread)이 지연될 수 있다. 하드.. 2025. 10. 1. redo log(mysql 8.0) MySQL 8.0 에서 Redo log는 데이터베이스의 성능과 안정성을 모두 잡기 윈한 핵심 장치로 사용된다. 모든 데이터 변경은 실제 데이터 파일보다 Redo log에 먼저 기록되어, 시스템 장애 시에도 데이터를 안전하게 복구하고 평상시에는 빠른 쓰기 성능을 보장한다. 안정성 (Crash Safety) : 커밋(Commit)된 트랜잭션의 변경 사항은 Redo log에 먼저 기록이 보장된다. 따라서 서버 전원이 갑자기 꺼지는 등의 장애가 발생해도, 재시작 시 Redo Log를 보고 미처 데이터 파일에 반영되지 못한 내용을 다시 실행하여 데이터를 복구할 수 있다.성능 (Performance) : 디스크의 여러 곳에 흩어져 있는 데이터 파일에 데이터를 쓰는 작업(Random I/O)은 느리다. Redo Lo.. 2025. 9. 16. [DB] Prepared Statement란? Prepared Statement는 데이터베이스 쿼리를 실행 할 때 쿼리를 미리 준비하고 실행할 때 필요한 값만 바인딩하여 사용하는 방식이다. 일반적으로 SQL 쿼리를 실행할 때와 달리, Prepared Statement는 SQL 구문과 데이터 값을 분리하여 처리한다. 이러한 방식은 SQL Injection 공격을 예방하고, 반복적인 쿼리 실행 성능을 향상시키는 등 여러 가지 장점을 제공한다. 일반 Statement의 동작 방식일반적으로 SQL을 실행할 때 다음과 같은 단계를 거친다.SQL 문자열 생성--예시SELECT * FROM users WHERE name = 'Alice'; 2. 파싱 (Parsing) : SQL 문법을 검사하고, 쿼리 구조를 분석한다. 3. 컴파일(Complie.. 2025. 6. 10. [DB] MVCC(다중 버전 동시성 제어) 동시정 제어(Concurrency Control)동시성 제어란 DBMS가 다수의 사용자 사이에서 동시에 작용하는 다중 트랜잭션의 상호간섭 작용에서 데이터베이스를 보호하는 것을 의미한다. 일반적으로 동시성을 허용하면 일관성이 낮아지게 된다. 다수 사용자의 동시 접속을 위해 DBMS는 동시성 제어를 할 수 있도록 Lock 기능과 SET TRANSACTION 명령어를 이용해 트랜잭션의 격리성 수준을 조정할 수 있는 기능도 제공한다. 이렇게 동시성을 제어하는 방법에는 낙관적 동시성 제어와 비관적 동시성 제어가 있다. 낙관적 동시성 제어(Optimistic Concurrency Control)사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정데이터를 읽는 시점에 Lock을 걸지 않는 대신 수정 시점에 .. 2025. 3. 26. 이전 1 2 3 다음 반응형