다중 버전 동시성 제어(MVCC, Multi-Version Concurrency Control)는 데이터베이스 시스템에서 동시성을 관리하는 기법으로, 트랜잭션이 동시에 실행될 때 읽기 작업과 쓰기 작업이 충돌하지 않도록 여러 개의 데이터 버전을 유지하는 방식입니다.
✅ 장점
❌ 단점
MVCC는 트랜잭션이 많은 환경에서 높은 동시성과 성능을 제공하는 중요한 기법이며, 대부분의 현대적인 데이터베이스에서 사용되고 있습니다.
PostgreSQL에서는 MVCC를 활용하여 트랜잭션이 서로 영향을 주지 않고 실행될 수 있습니다.
BEGIN TRANSACTION;
SELECT * FROM accounts WHERE id = 1; accounts 테이블에서 id = 1인 계정 정보를 조회
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance + 100 WHERE id = 1;
COMMIT; id = 1 계좌의 balance를 100 증가시킴COMMIT하면 다른 트랜잭션에서는 변경된 데이터를 볼 수 있음SELECT * FROM accounts WHERE id = 1; COMMIT;
SELECT * FROM accounts WHERE id = 1; MySQL의 InnoDB 엔진도 MVCC를 지원하며, 트랜잭션 격리 수준에 따라 동작이 달라짐
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
START TRANSACTION;
SELECT * FROM orders WHERE order_id = 10; REPEATABLE READ에서는 트랜잭션이 시작된 시점의 데이터를 계속 읽음START TRANSACTION;
UPDATE orders SET status = 'shipped' WHERE order_id = 10;
COMMIT; orders 테이블의 order_id = 10 상태를 'shipped'로 변경SELECT * FROM orders WHERE order_id = 10; COMMIT;
SELECT * FROM orders WHERE order_id = 10; status = 'shipped' 데이터를 확인할 수 있음✅ 온라인 뱅킹 시스템
✅ 전자상거래 시스템
✅ 분산 데이터베이스 및 클라우드 시스템
MVCC는 데이터베이스 성능을 향상시키면서도 데이터 정합성을 보장하는 중요한 기법이며, 트랜잭션이 많은 환경에서 매우 유용하게 활용됩니다.
필기 시험의 접근통제 영역은 용어 하나만 알아도 풀리는 문제와 개념을 뒤집어 묻는 문제가 섞여 나옵니다.…
유튜브에 AI 자동 생성 영상이 넘쳐납니다. 진짜 크리에이터들은 어떻게 살아남아야 할까요? AI와 경쟁하는 3가지 생존…
이틀 전에 사이드카가 걸렸을 때만 해도 "한 번 놀란 장"으로 끝날 줄 알았는데요. 15일 아침…
오전 시황 글에 이어 장중 후속 정리입니다. 코스피는 개장 직후 5%대였던 낙폭이 오전 10시 전후에…
10월 15일 목요일 아침, 코스피가 전날 종가보다 5.59% 낮은 5,673.01로 출발했습니다. 장 시작 7분 만에…
삼성 갤럭시 AI, 써보니 실망스러웠다. 온디바이스 한계, 지역 제한, 낮은 일상 활용도 등 현실적인 문제점…