본문 바로가기

데이터베이스

현업에서 일하고있는 내가 PostgreSQL 을 추천하는 이유!

반응형

MySQL vs PostgreSQL 사용 비율 (2024 기준 경향)

구분

구분 MySQL PostgreSQL
스타트업, 중소기업 ⭐⭐⭐⭐⭐ (가장 흔함) ⭐⭐ (조금 적음, 최근 증가 중)
대기업/금융 ⭐⭐⭐ ⭐⭐⭐⭐⭐ (가장 빠르게 성장 중)
AI/데이터 사이언스 ⭐⭐ (기본 지원) ⭐⭐⭐⭐⭐ (JSON, GIS, 확장성, 함수형 SQL)
글로벌 서비스 AWS RDS Aurora (MySQL), Shopify 등 Reddit, Instagram, Notion, GitLab 등
복잡한 JOIN, JSON 약함 (JSON 지원은 있지만 느림) 강함 (JSONB, GIN Index, Window Functions 강력)
GIS / 공간 검색 약함 강함 (PostGIS)


간단하게 요약하면:

  • 상황: 추천 DB
    • MVP 빠른 개발, 이커머스, CMS, 워드프레스, 쇼핑몰: MySQL / MariaDB
    • 데이터 사이언스, AI 시스템, 복잡한 쿼리 필요: PostgreSQL
    • 대용량 읽기 위주, 단순 키-값, 글로벌 확장: Aurora (MySQL 호환), DynamoDB 등

왜 PostgreSQL이 최근 뜨고 있나?

  • JSON + RDBMS 조합이 뛰어남 (NoSQL 느낌도 낼 수 있음)
  • Window Function (RANK(), ROW_NUMBER()) 성능 좋음
  • WITH RECURSIVE (트리 구조 처리) 쉽고 빠름
  • PostGIS (지도/GIS 검색), Time-series (TimescaleDB) 확장 가능
  • 대규모 데이터 통계, AI Embedding Vector 쿼리 (pgvector) 지원

실제 사례

회사 사용 DB 특징
Shopify MySQL / Aurora (MySQL 호환) 안정성, 글로벌 멀티리전
Reddit PostgreSQL 커뮤니티, JSON + JOIN 활용
GitLab PostgreSQL 복잡한 데이터 구조, 트리, 이슈 관리
Notion PostgreSQL 복잡한 문서 구조, JSON 활용
카카오 / 배달의민족 MySQL → PostgreSQL 전환 사례 있음 GIS, 복잡 쿼리 대응

현업 추천 포인트

  • 고민 포인트: 선택 추천
    • 단순 상품관리, CMS, 쇼핑몰: MySQL / Aurora
    • 대용량 복잡한 검색, JSON, AI: PostgreSQL + pgvector
    • NoSQL과 RDB 둘 다 필요한 경우: PostgreSQL (JSONB 활용)

AI / 데이터 사이언스에서 PostgreSQL이 더 좋은 이유

  1. JSON 지원이 MySQL보다 훨씬 강력
    • JSONB 타입 → 빠른 검색 + 인덱스 (GIN Index)
    • MySQL도 JSON 있지만, 검색 느리고 복잡
  2. Vector Embedding 저장 + 검색 (pgvector)
    • OpenAI, SentenceTransformer, CLIP → Embedding 벡터 저장 가능
    • RAG, 추천 시스템, 유사도 검색까지 바로 지원
    • cube 타입이나 pgvector 확장 모듈 사용 → L2 distance, cosine similarity, inner product 지원
  3. Window Functions, Recursive Queries, CTE (WITH)
    • 시간대별 변화 비교 (LAG(), LEAD())
    • 트리형 데이터 (WITH RECURSIVE)
    • RANK(), ROW_NUMBER() → 머신러닝 피처 생성 때도 자주 씀

데이터 사이언스, ML 파이프라인에서 PostgreSQL을 쓰는 이유

필요 기능 MySQL PostgreSQL
JSON 처리 약함 강력 (JSONB + GIN Index)
Embedding 검색 없음 pgvector 확장 사용 가능
Window Functions 일부 있음 매우 강력
Time-series 기능 없음 TimescaleDB 확장 가능

공간 검색(GIS)에서 PostgreSQL이 좋은 이유 (PostGIS)

GIS 기능 MySQL PostgreSQL + PostGIS
거리 계산 (ST_Distance) 지원은 하지만 성능, 기능 부족 초정밀 계산, 다양한 좌표계 지원
공간 인덱스 (SPATIAL INDEX) 기본 지원 (제한적) GIST, SPGIST Index → 빠름
좌표 변환 (ST_Transform) 없음 지원 (EPSG 코드 사용)
공간 집계 (ST_Union, ST_Buffer) 없음 지원 (버퍼링, 겹침 영역 구하기)
GIS 함수 개수 20개 미만 200개 이상

실무 예시:

  • 반경 5km 안에 있는 매장 찾기 (PostGIS)
    SELECT store_id, store_name
    FROM stores
    WHERE ST_DWithin(
        ST_SetSRID(ST_Point(longitude, latitude), 4326),
        ST_SetSRID(ST_Point(127.0276, 37.4979), 4326), 5000
    );
    • EPSG:4326은 위도/경도 좌표계
    • 거리 단위: 미터(m)

공간검색을 PostgreSQL + PostGIS로 하는 이유 (실제 현업 사례)

회사 PostGIS 사용 이유
배달의민족 배달 반경 설정, 배달 가능 지역 찾기
카카오T 택시 호출 시 근처 기사 검색
우버 기사 위치 기반 배차
농업 스마트팜 경작지 영역, 위성 사진 분석

한 줄 요약:

분야 왜 PostgreSQL이 강한가
AI / 데이터사이언스 Vector Embedding 저장 + 검색, JSON 처리, Window Functions, RECURSIVE
GIS / 공간검색 PostGIS 확장, 정확한 거리 계산, 공간 인덱스, 다양한 좌표계 지원
반응형

'데이터베이스' 카테고리의 다른 글

Supabase 수파베이스란?  (0) 2025.06.08
단일 테이블 생성 실습 문제와 정답  (0) 2024.10.29