CS/RDBMS19 [DB] MySQL Master-Slave 복제(Replica) 과정과 Binlog란? 0. 개요회사에서 prd 환경에 Master, Slave MYSQL을 사용하고 있어, 해당 과정에 대해 공부해보았다. 1. NCloudhttps://www.ncloud.com/v2/product/database/cloudDbMysql#detail NAVER CLOUD PLATFORMcloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certificationwww.ncloud.comDB에 대한 HA를 보장하기 위해 Master와 Slave, 그리고 Standby Master DB가 있다.Standby Master DB는 Master DB가 죽었을때 Master로 승격된다.. 2026. 1. 16. [DB] MySQL 8.0 잠금 MYSQL의 내부 동작과 그 원리에 대해 궁금해져, Real MySQL 8.0 책을 읽었는데 정리를 안하니 계속 내용이 휘발되어서 내 방식으로 정리해보고자 글을 쓴다. 잠금은 동시성을 제어하기 위한 기능으로, 여러 커넥션에서 동시에 동일한 자원을 요청할 경우 순서대로 한 시점에는 하나의 커넥션만 변경할 수 있게 해주는 것이다. MySQL에서 사용하는 잠금은 크게 스토리지 엔진 레벨과 MySQL 엔진 레벨로 나눌 수 있다. - MySQL 엔진 레벨: 글로벌 락 , 테이블 락, 테이블 메타데이터 락, 네임드 락- 스토리지 엔진 레벨: 레코드 락, 갭락, 넥스트 키 락, 자동 증가 락이들에 대해 자세히 알아보자! 1. MySQL 엔진 레벨의 락 [ 글로벌 락 ]가장 범위가 큰 잠금이다. MySQL 서버 .. 2026. 1. 14. [DB] MySQL 8.0 트랜잭션과 MVCC MYSQL의 내부 동작과 그 원리에 대해 궁금해져, Real MySQL 8.0 책을 읽었는데 정리를 안하니 계속 내용이 휘발되어서 내 방식으로 정리해보고자 글을 쓴다. 트랜잭션은 데이터의 정합성을 보장하기 위한 기능이다. 1. ACID데이터 베이스는 트랜잭션의 무결성을 보장하기 위해 ACID(기능)를 만족한다. - Atomicity (원자성) : 원자성 작업으로, 전체가 Commit되거나 Rollback되어야 한다. - Consistency (일관성) & Isolation (격리성) : 서로 다른 두 개의 트랜잭션에서 동일 데이터를 조회하고 변경하는 경우에도 상호 간섭이 없어야 한다. - Durability (지속성) : 한 번 저장된 데이터는 지속적으로 유지가 되어야 한다. 트랜잭션과 관련된 더.. 2026. 1. 13. [DB] MySQL 8.0 인덱스 MYSQL의 내부 동작과 그 원리에 대해 궁금해져, Real MySQL 8.0 책을 읽었는데 정리를 안하니 계속 내용이 휘발되어서 내 방식으로 정리해보고자 글을 쓴다. 1. 디스크 읽기 방식CPU나 메모리 같은 주요 장치는 대부분 전자식 장치이지만, 하드 디스크 드라이브는 기계식 장치다. 그래서 DB 서버에서는 항상 디스크 장치가 병목이 되어 어떻게 Disk I/O를 줄이느냐가 관건일 때가 많다. 디스크에 데이터를 쓰고 읽는 데 걸리는 시간은 디스크 헤더를 움직여서 읽고 쓸 위치로 옮기는 단계에서 결정된다. 디스크의 헤더를 움직이지 않고 한 번에 많은 데이터를 읽는 Sequential I/O에서는 SSD와 HDD의 성능은 비슷하다. 다만, Random I/O에서는 SSD가 훨씬 빠르다. DB I/O의 .. 2026. 1. 13. [DB] MYSQL 엔진 아키텍처 MYSQL의 내부 동작과 그 원리에 대해 궁금해져, Real MySQL 8.0 책을 읽었는데 정리를 안하니 계속 내용이 휘발되어서 내 방식으로 정리해보고자 글을 쓴다. 1. MYSQL 엔진 아키텍쳐MySQL 서버는 크게 아래 두 엔진으로 구분할 수 있다. 1. MySQL 엔진: SQL 분석과 최적화를 담당한다. SQL 파서, SQL 옵티마이저, SQL 실행기 등이 포함된다. 2. 스토리지 엔진: 디스크에 저장, 조회를 담당한다. 이때, 핸들러 API를 이용해 실제 처리(핸들러 요청)를 수행한다. 핸들러는 말 그대로 MySQL 엔진이 스토리지 엔진을 조종하기 위해 사용되는 것이다. MySQL은 아래와 같이 구성되어 있다. 프로그램은 커넥션 핸들러를 통해 DB와 연결된다. 프로그램이 SQL을 전송하면,.. 2026. 1. 12. [DB] MySQL 락 걸어보고 분석해보기! MySQL InnoDB의 잠금에 대해 공부하다가 직접 락을 확인해보고 싶어서 실습해보았다. 1. Auto commit이란? Auto commit은 DML문이 실행될 때, 사용자가 명시적으로 저장 명령을 내리지 않아도 각 SQL문이 서로 독립적인 트랜잭션으로 실행되며, 실행 된 후 즉시 DB에 영구적으로 반영(commit)하는 설정이다.일반적인 DB 작업은 START TRANSACTION → 작업 → COMMIT의 단계를 거치는데, Auto Commit이 켜져 있으면, SQL 문 하나가 실행될 때마다 Commit 과정이 자동으로 처리된다. JDBC는 Connection 객체가 만들어지면, Auto Commit 모드가 켜진 채로 만들어지는 것을 디폴트로 하고 있다. 그러면 작업 중에 걸린 Lock 정보를 .. 2025. 8. 23. 이전 1 2 3 4 다음