PostgreSQL이란?
가장 많이 사용되는 객체 관계형 DBMS
안정성이 매우 높고 사용자 친화적인데 그 이유는 PostgreSQL의 주요 특징 때문이다!
- 사용자 정의 유형
- 테이블 상속
- 정교한 잠금 메커니즘
- 외래 키 참조 무결성
- 보기, 규칙, 하위 쿼리
- 중첩 트랜잭션(savepoints)
- 다중 버전 동시성 제어(MVCC)
- 비동기 복제기본
- 테이블 공간
- 특정 시점 복구
그 중에서도 multi-version concurrency control (MVCC)는 PostgreSQL에서 처음으로 구현된 기능인데
PostgreSQL은 확장이 가능하도록 설계되어 있기 때문에 데이터 타입, 인덱스 타입, 함수형 언어 등을 직접 정의할 수 있다.
MVCC(다중 버전 동시성 제어)란?
MVCC는 동시 접근을 허용하는 데이터베이스에서 동시성을 제어하기 위해 사용하는 방법 중 하나로,
MVCC에서 데이터에 접근하는 사용자는 접근한 시점에 데이터베이스의 Snapshot을 읽는데, 이 snapshot 데이터에 대한 변경이 완료(commit)될 때 까지의 변경사항은 다른 데이터베이스 사용자가 볼 수 없다.
사용자가 업데이트하면 이전의 데이터를 덮어 씌우는게 아니라 새로운 버전의 데이터를 UNDO 영역에 생성한다.
대신 이전 버전의 데이터와 비교해서 변경된 내용을 기록한다. 이렇게 해서 하나의 데이터에 대해 여러 버전의 데이터가 존재하게 되고, 사용자는 마지막 버전의 데이터를 읽게 된다.
때문에 MVCC의 접근 방식은 잠금을 필요로 하지 않기 때문에 일반적인 RDBMS보다 매우 빠르게 작동
그렇다면 MySQL과 비교해보자
PostgreSQL | MySQL |
복잡한 쿼리와 대규모 DB에 적합 | 빠르고 쉽게 설치, 관리할 수 있음 |
테이블 상속, 함수 오버로딩 등의 기능을 가진 객체 관계형 DB | 순수 관계형 DB |
다양한 DB 상황 처리를 할 수 있는 많은 기능들 | 기능이 많지 않아 속도와 안정성에 Good |
https://mangkyu.tistory.com/53
https://www.geeksforgeeks.org/what-is-postgresql-introduction/
https://www.integrate.io/ko/blog/postgresql-vs-mysql-the-critical-differences-ko/
'CS 👩🏻💻 > 데이터베이스' 카테고리의 다른 글
인덱스와 클러스터 인덱스 (0) | 2023.09.18 |
---|