PostgreSQL, MariaDB, MySQL은 다 RDBMS(관계형 데이터베이스 관리 시스템)이지만, 철학·아키텍처·지원 기능에서 확연히 다르거든! 📊⚙️
1995년에 만들어진 오픈소스 RDBMS.
PHP, Apache와 함께 LAMP 스택의 핵심.
2010년 Sun Microsystems → Oracle이 인수. 이때 오픈소스 진영에서 "Oracle이 독점하면 큰일 난다" 해서 MariaDB가 갈라져 나옴.
Storage Engine 구조: MySQL은 InnoDB(기본) + 다른 엔진들(MyISAM, Memory, NDB)을 선택 가능.
복제(Replication): Master-Slave 구조가 쉬움. 하지만 원래는 단순한 비동기 복제라서 데이터 일관성이 깨질 수 있음.
ACID 트랜잭션: InnoDB 기준으로는 지원, 근데 PostgreSQL만큼 강력하진 않음.
JSON 지원: 기본 JSON 타입 제공하지만, PostgreSQL처럼 정교한 쿼리는 어려움.
웹 애플리케이션, 중소형 서비스, CMS(워드프레스, 드루팔 등).
대규모 금융, 고도화된 데이터 분석에는 잘 안 씀.
1. 역사와 배경
MySQL 창업자 Michael Widenius(닉네임 Monty)가 Oracle 인수 후 “MySQL의 오픈소스 철학을 지키자” 하면서 만든 Fork 버전.
이름 "Maria"는 Monty 딸 이름. (MySQL도 딸 이름 “My”). 가족주의 DB네 🤣
2. 특징
MySQL과의 호환성: SQL 문법, API, 프로토콜까지 거의 동일 → MySQL에서 쉽게 교체 가능.
스토리지 엔진 다양성: MySQL보다 더 많은 엔진 지원. (예: Aria, ColumnStore, Spider, XtraDB 등) → 분석, 분산 처리, 대규모 트랜잭션에 유리.
성능 최적화: 고성능 쿼리 실행 계획, 병렬 복제 지원.
오픈소스 지향: MySQL이 Oracle 영향으로 일부 상용 기능이 생긴 반면, MariaDB는 100% 오픈소스 유지.
3. 쓰임새
MySQL 대체용으로 기업에서 많이 씀 (특히 리눅스 디스트리뷰션 기본 DB로 탑재되는 경우 많음).
고성능이 필요한 웹서비스, 분산 시스템.
1. 역사와 배경
1986년 캘리포니아 버클리대 POSTGRES 프로젝트에서 시작.
MySQL보다 더 학술적이고 표준 SQL에 충실.
2. 특징
ACID 트랜잭션: MySQL/MariaDB보다 훨씬 정교함.
MVCC (Multi-Version Concurrency Control):
동시에 여러 트랜잭션이 실행될 때도 락(잠금) 걸리지 않고 안정적으로 처리.
SQL 표준 지원율: 업계 최고 수준. (Window 함수, CTE, Subquery, Full Outer Join 등 MySQL에 없는 기능 다 있음.)
확장성:
JSONB 타입 (Binary JSON) → MongoDB 부럽지 않음.
GIS 데이터(PostGIS) → 위치 기반 서비스에 최강.
사용자 정의 함수, 확장 모듈.
복제와 샤딩: 원래는 외부 솔루션을 많이 썼지만 요즘은 기본 기능도 좋아짐.
3. 쓰임새
금융권, 공공기관, 대기업에서 많이 사용.
데이터 분석, 빅데이터, AI 파이프라인, GIS 시스템.
“복잡하고 정밀한 서비스”에 강함.
간단한 웹/스타트업 프로젝트 → MySQL (쉬움, 자료 많음)
MySQL 쓰던 걸 그대로 더 성능 좋게 → MariaDB (거의 대체재 + 성능 향상)
데이터 무결성·복잡한 연산·대규모 트랜잭션 → PostgreSQL (기업용, 학계·금융권 선호)