H2가 MySQL, PostgreSQL와의 차이

2025. 6. 19. 01:56·WIL

H2가 MySQL, PostgreSQL와의 차이

1. 개요

  • H2 Database

    • 경량·오픈소스 Java 기반 RDBMS (jar 크기 ≈1.5 MB)
    • JDBC API 및 일부 ODBC 지원
  • MySQL/PostgreSQL

    • C/C++ 기반, 대규모 서비스용으로 설계
    • 풍부한 기능(파티셔닝, 복제, 고가용성 등) 지원

2. 운영 모드

구분 H2 MySQL/PostgreSQL
임베디드(Embedded) 애플리케이션 JVM 안에서 직접 구동, 가장 빠름 불가 (서버-클라이언트 구조)
서버(Server) 별도 JVM 프로세스에서 실행, 다중 클라이언트 접속 가능 표준 서버 모드 (다중 클라이언트 지원)
혼합(Mixed) 첫 연결은 임베디드, 이후 서버 모드로 전환 –

→ 요약: H2는 임베디드(In-JVM), 서버, 혼합 모드 모두 지원하지만, MySQL/PostgreSQL은 서버 모드만 제공.


3. 기능 및 데이터 타입

  • 데이터 타입

    • H2: 기본 SQL 타입 + 제한된 함수 집합
    • PostgreSQL: 다양한 고급 타입(JSONB, 지리공간 등) 및 방대한 함수 지원
  • 트랜잭션·동시성

    • H2: MVCC, 테이블 락, 2단계 커밋 지원
    • PostgreSQL: 완전한 MVCC, 표준 분산 트랜잭션, 세밀한 동시성 제어
  • SQL 방언

    • H2는 표준 SQL 지원하나 MySQL/PostgreSQL 고유 방언(함수, 키워드)과 차이 존재

4. 성능 및 용도

  • 속도

    • H2: 인메모리 모드에서 극히 빠름 (개발·테스트용)
    • MySQL: 높은 동시 읽기 성능, 대용량 OLTP에 강함
    • PostgreSQL: 복잡한 분석 쿼리도 빠르게 처리
  • 용도

    • H2: 개발·테스트 환경에 최적화(무설정, 빠른 기동)
    • MySQL/PostgreSQL: 프로덕션 서비스(가용성·안정성)

5. 관리·운영 측면

  • 설치·운영 편의성

    • H2: jar 하나로 실행, 웹콘솔 내장
    • MySQL/PostgreSQL: 패키지 설치 및 데몬 관리 필요
  • 클러스터링·복제

    • H2: 제한적(서버 모드 클러스터링 지원하나 규모·신뢰성 낮음)
    • MySQL/PostgreSQL: 다양한 복제·샤딩·고가용성 솔루션 존재
  • 보안

    • H2: 암호화(AES, XTEA), SSL/TLS 지원
    • MySQL/PostgreSQL: 인증·권한·네트워크 보안 강력

결론

  • 개발·테스트용으로는

    • H2의 임베디드 모드가 빠르고 설정이 없어 편리
  • Production용으로는

    • 기능·안정성·확장성 면에서 MySQL 혹은 PostgreSQL이 적합

필요에 따라 개발 시 H2 → 프로덕션 시 MySQL/PostgreSQL 전환 전략을 많이 사용

728x90

'WIL' 카테고리의 다른 글

개발 환경에서 프론트-백 서버 분리 이유  (0) 2025.06.19
크래프톤 정글 학습 13주차: Spring Boot로 CRUD 게시판 API 서버 구축기  (0) 2025.06.18
[Python] 딕셔너리(Dictionary) 문법  (0) 2025.03.29
'WIL' 카테고리의 다른 글
  • 개발 환경에서 프론트-백 서버 분리 이유
  • 크래프톤 정글 학습 13주차: Spring Boot로 CRUD 게시판 API 서버 구축기
  • [Python] 딕셔너리(Dictionary) 문법
ahpicl64
ahpicl64
in the clouds
  • ahpicl64
    구름
    ahpicl64
  • 전체
    오늘
    어제
    • 분류 전체보기 (95)
      • WIL (4)
      • Jungle (36)
      • AWS (2)
      • SQL (2)
      • CS:APP (17)
      • Algorithm (10)
      • K8s (7)
      • 자료 구조 (10)
      • Spring (4)
      • React (0)
      • 운영체제 (1)
      • 기타등등 (2)
      • 이야기 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    CloudFront
    python
    Spring boot
    AWS
    DB
    S3
    부하테스트
    자료구조
    DevOps
    어셈블리
    CSAPP
    컴퓨터시스템
    k8s
    트러블슈팅
    github actions
    IAM
    queue
    Spring
    EC2
  • 02-21 06:16
  • hELLO· Designed By정상우.v4.10.3
ahpicl64
H2가 MySQL, PostgreSQL와의 차이
상단으로

티스토리툴바