본문 바로가기

데이터베이스3

[데이터베이스] MySql InnoDB의 버퍼 풀(Buffer Pool)과 언두로그(Undo log) MySQL의 InnoDB는 내부 구조와 프로세스가 매우 복잡해 우선 MVCC를 이해하기 위해 버퍼 풀과 언두로그에 대한 간단한 정리이다.  버퍼 풀(Buffer Pool)버퍼 풀은 MySQL InnoDB 스토리지 엔진에서 성능을 최적화하기 위해 사용하는 메모리 영역으로. 디스크 I/O를 최소화하고, 데이터와 인덱스에 빠르게 접근할 수 있도록 설계되어 InnoDB 스토리지 엔진의 가장 핵심적인 부분이다. 이런 특징 때문에 데이터베이스에서 자주 읽고 쓰는 데이터를 메모리에 캐싱하여 디스크 접근 시간을 줄이고 성능을 향상시킬 수 있다.  * 주요 기능데이터 및 인덱스 캐싱:자주 사용되는 데이터 페이지와 인덱스를 메모리에 저장해 디스크 I/O를 줄이고 빠른 데이터 접근을 가능하게 한다.쓰기 지연(Write Bu.. 2024. 12. 20.
[데이터베이스] MySql 스토리지 엔진 InnoDB의 MVCC란? 스토리지 엔진은 MySQL이 데이터를 물리적으로 저장하고, 읽고, 관리하는 방식을 결정하는 모듈로데이터 저장, 트랜잭션 지원, 잠금(Lock), 인덱스관리 등을 지원하는 역할을 한다. InnoDBInnoDB는 MySQL에서 기본으로 제공되는 스토리지 엔진으로, MySQL 5.5부터 기본 스토리지 엔진으로 설정되었고, MySQL 8.0에서도 이를 유지하고 있다. MySql 8.0에서 InnoDB의 주요 특징으로는 트랜잭션 지원, MVCC(Multi-Version Concurrency Control), 외래 키(Foreign Key) 지원, 클러스터링된 인덱스 등 여러가지가 있지만, 이 중 MVCC에 대해 알아본다. InnoDB의 주요 구성요소InnoDB의 주요 구성요소에는테이블스페이스(Tablespace).. 2024. 12. 10.
[데이터베이스] DBMS 를 활용한 동시성제어 - DBMS 락 1. DBMS 락(Lock) 이란?"트랜잭션 간의 데이터 접근을 제어해 데이터 무결성과 일관성을 보장하는 동시성 제어 메커니즘" - 핵심 역할여러 트랜잭션 간의 충돌 방지.트랜잭션 간에 발생할 수 있는 Dirty Read, Non-Repeatable Read, Phantom Read와 같은 문제 방지.Deadlock(교착 상태) 관리: DBMS는 교착 상태 발생 시 특정 트랜잭션을 강제로 롤백하여 문제를 해결.- ACIDDBMS 락의 기본 목적은 동시성 제어뿐 아니라 ACID 속성을 보장하기 위해 사용된다.Atomicity (원자성): 트랜잭션이 완전히 수행되거나 전혀 수행되지 않아야 함.Consistency (일관성): 트랜잭션이 성공적으로 완료되면 데이터가 일관된 상태를 유지해야 함.Isolation.. 2024. 12. 9.