DB/이론

[DB] PostgreSQL vs MySQL

yubi5050 2022. 8. 10. 14:47

DB 순위 링크 : https://db-engines.com/en/ranking_trend/relational+dbms

 

1. MySQL vs PostgreSQL 특징 비교

  PostgreSQL MySQL
Architecture ORDBMS (Object-RDBMS)
multi-process(연결마다 프로세스 생성, 연결 유저 많으면 많은 메모리 요구)
RDBMS
single-process(연결마다 쓰레드 생성, 커널 스레드를 활용한 완전한 multi-thread)
Indexes
supported
고성능을 위한 다양한 index 기능 지원
B-tree, hash, GiST, SP-GiST, GIN, BRIN
기본 B-tree
특정 데이터 타입 R-tree, hash, inverted index
Performance 읽기와 쓰기가 많은 어플리케이션에 적합
읽기가 많은 어플리케이션에 적합
Security 접근 관리, multi encryped connection
PAM과 Keyberos를 사용한 유저 인증
접근 관리, encryped connection
PAM, Native window service, LDAP를 사용한 유저 인증
동시성제어 mvcc(mlutiversion concurrency control) 특화, Locking없이 읽기 작업을 수행해 병목이 적음 lock 방식 특화
트랜잭션
격리 수준
Read Committed Repetable Read
장점 데이터 백업 및 읽기 확장성을 위한 Replication

read query 병렬화, indexing, mvcc 등의 특징으로 성능 향상과 최적화를 가져옴

다양한 data type 지원 (비관계형 - json, xml)
Master-Slave Replication, Scale-out 기능 제공

빈번하게 사용되는 테이블에 대한 Memory Storage engine 지원
특징 데이터 행의 버전 관리 때문에 불필요 데이터 보관함 => 주기 적인 vacumm 작업으로 삭제 필요

모든 새로운 클라이언트 연결에 대해 새로운 프로레스를 fork로 메모리 성능이 떨어짐

5천만 행 이상의 많은 데이터 처리 가능

 

2. MySQL vs PostgreSQL 필드 비교

 

    PostgreSQL MySQL
날짜, 시간 DATE, TIME DATE (3바이트), TIME (4바이트)
DATETIME 시간 + 날짜 (8바이트)
문자 타입 CHAR 고정 문자열 (N바이트)
VARCHAR 가변 문자열 (N바이트 + 길이 저장 1바이트 => N+1)
BLOB 이미지, 동영상 큰 데이터 저장에 사용
TEXT 큰 문자열 저장
숫자 타입
(정수)

INT1 SMALLINT TINYINT (1바이트, +- 128)
INT2 SMALLINT SMALLINT (2바이트, +-32768)
INT4 INTEGER INTEGER (4바이트, +-21억)
INT8 BIGINT BIGINT (8바이트)
UINT1 SMALLINT UNSIGNED TINYINT
UINT2 INTEGER UNSIGNED SMALLINT
UINT4 BIGINT UNSIGNED INTEGER
UINT8 BIGINT UNSIGNED BIGINT
숫자 타입
(실수)


NUMERIC DECIMAL (P,S, 금액과 같은 정확성이 중요한 필드)
REAL4 FLOAT4 (4바이트) FLOAT (4바이트)
REAL8 FLOAT8 (부동소수점, 8바이트) DOUBLE PRECISION (부동소수점, 8바이트)
논리형 Boolean bool (true, false 형)
기타 json, uuid json 데이터 / 보편 고유 식별자

 

참고 문헌

https://uminoh.tistory.com/32 // PostgreSQL vs MySQL 차이 (fear. 버전을 막론하고)

https://smoh.tistory.com/370 // SQLite vs MySQL vs PostgreSql: 관계형 DB 시스템의 비교

https://shinjam.tistory.com/entry/MySQL-vs-PostgreSQL // MySQL vs PostgreSQL

'DB > 이론' 카테고리의 다른 글

[DB] Replication 이란? (Feat. Mysql, Mongo)  (0) 2022.10.03
[DB] Index란?  (0) 2022.08.11
[DB] Transaction 격리 수준 종류 (Isolation Level)  (0) 2022.08.10
[DB] ORM 이란?  (0) 2022.06.02
[DB] SQL vs NoSQL 차이점  (0) 2022.05.17