--- id: "MariaDB vs PostgreSql 20260421" created: "2026-04-21 16:43" tags: --- 이 두 DB는 현재 오픈소스 RDBMS 시장의 양대 산맥입니다. **MariaDB**가 MySQL의 친숙함을 계승하며 실용성에 집중한다면, **PostgreSQL**은 데이터 무결성과 고급 기능을 중시하는 학구적이고 정교한 DB라고 할 수 있습니다. ## 1. 철학 및 개발 배경 |**구분**|**MariaDB**|**PostgreSQL**| |---|---|---| |**태생**|MySQL에서 분차(Fork)되어 나온 실용주의 DB|학계에서 시작된 객체-관계형(ORDBMS) 표준 지향 DB| |**슬로건**|"MySQL보다 빠르고 더 많은 기능을 무료로"|"세계에서 가장 진보된 오픈소스 관계형 데이터베이스"| |**라이선스**|GPL v2 (비즈니스 시 소스 공개 의무 주의)|PostgreSQL 라이선스 (BSD/MIT와 유사, 매우 자유로움)| ## 2. 기술적 핵심 차이 ### 🚩 SQL 표준 및 복잡한 쿼리 처리 - **PostgreSQL:** SQL 표준 준수율이 매우 높습니다. 복잡한 조인(Join), 재귀 쿼리(Recursive CTE), 윈도우 함수 성능이 뛰어나며, 분석용 쿼리 최적화가 강력합니다. (MSSQL과 사용감이 비슷합니다.) - **MariaDB:** MySQL의 문법을 따르며, 단순한 CRUD 성능에 최적화되어 있습니다. 최근 버전에서 CTE나 윈도우 함수를 지원하지만, 복잡한 비즈니스 로직 처리에서는 PostgreSQL에 비해 최적화가 덜 정교할 수 있습니다. ### 🚩 데이터 타입과 확장성 - **PostgreSQL:** 독보적입니다. JSONB(바이너리 JSON) 지원으로 NoSQL처럼 쓸 수 있고, 지리 정보(PostGIS), 전문 검색(Full-text search) 등이 내장되어 있습니다. 사용자 정의 타입도 만들 수 있습니다. - **MariaDB:** 동적 컬럼(Dynamic Columns) 기능을 통해 비정형 데이터를 다루지만, PostgreSQL의 JSONB 성능에는 미치지 못합니다. 대신 다양한 스토리지 엔진(InnoDB, Aria, ColumnStore 등)을 용도에 맞게 선택할 수 있는 유연성이 있습니다. ### 🚩 동시성 제어 (MVCC) - **PostgreSQL:** 데이터 쓰기 중에도 읽기가 차단되지 않는 MVCC(Multi-Version Concurrency Control) 방식이 매우 세련되어 있어, 동시 접속자가 많은 대형 시스템에 유리합니다. - **MariaDB:** 스토리지 엔진(주로 InnoDB) 수준에서 MVCC를 지원하며, 읽기 위주의 서비스에서 가볍고 빠르게 동작합니다. ## 3. 상세 비교 테이블 | **항목** | **MariaDB** | **PostgreSQL** | | ------------------- | ---------------------------- | ------------------------------------------- | | **주요 용도** | 웹 서비스, CMS(워드프레스 등), 단순 CRUD | 복잡한 데이터 분석, 금융 시스템, GIS 서비스 | | **성능 특징** | 읽기(Read) 성능이 매우 빠름 | 복잡한 쓰기(Write) 및 대량 데이터 처리에 강함 | | **복제(Replication)** | 마스터-슬레이브 방식이 매우 쉽고 직관적 | 논리적 복제 등 다양한 방식 지원 (설정은 좀 더 복잡) | | **저장 프로시저** | 지원 (MySQL 문법) | 강력 지원 (PL/pgSQL, Python, Perl 등 지원) | | **인덱싱** | 기본 B-Tree 위주 | B-Tree, Hash, GiST, SP-GiST, GIN, BRIN 등 다양 | ## 4. 어떤 것을 선택해야 할까? ### 🐧 MariaDB를 선택할 때 - 기존에 MySQL을 써본 적이 있어 익숙함이 중요할 때. - 커뮤니티나 자료가 많은 것을 선호할 때. - 단순한 웹 게시판이나 가벼운 데이터 저장용일 때. - PHP나 구형 웹 스택과의 호환성이 중요할 때. ### 🐘 PostgreSQL을 선택할 때 - **MSSQL 2019의 고급 기능을 오픈소스에서도 누리고 싶을 때.** - 데이터 정합성이 무엇보다 중요한 금융, 결제, 정산 관련 프로젝트일 때. - JSON 데이터를 빈번하게 다루면서 속도도 포기할 수 없을 때. - 프로젝트가 커질 것을 대비해 확장성이 뛰어난 DB가 필요할 때.