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 |