[PostgreSQL] PostgreSQL 을 쓰는 이유

배배·2024년 4월 17일

PostgreSQL

목록 보기
1/6


📌 PostgreSQL은?

PostgreSQL은 확장 가능성 및 표준 준수를 강조하는 객체-관계형 데이터베이스 관리 시스템의 하나이다. BSD 허가권으로 배포되며 오픈소스 개발자 및 관련 회사들이 개발에 참여하고 있다.

Website : www.postgresql.org
Technical documentation : www.postgresql.org/docs



📈 DB Trend Popularity


DB-Engines의 Trend Popularity에 따르면 PostgreSQL의 인기는 꾸준히 상승하여 상위 3개 DB(Oracle, MySQL, MsSQL)와의 격차를 줄이고 있다.
출처 : https://db-engines.com/en/ranking_trend




🔍 장점

Open Source

  • PostgreSQL은 오픈 소스 프로젝트로써 높은 라이센스 비용이 요구되는 상용 DBMS인 Oracle 등과 달리 무료 이용이 가능하다.
  • 커뮤니티의 활성화에 따른 빠른 문제 해결 및 기술발전이 가능하다.

최다 SQL 기능 지원

  • SQL 표준 최다 준수
    • 2023년 9월 릴리즈 된 16버전 부터 SQL : 2023 Core 적합성을 위한 179개 필수 기능 중 최소 170개를 준수한다.
  • 다양한 운영체제 지원
    • Microsoft Windows, MacOS, Linux(General/Generic), Linux(Ubuntu), Linux(Debian), Linux(SUSE Linux Enterprise Server & OpenSuSE), Linux(Red Hat Enterprises, CentOS, Fedora, Scientific, Oracle), Oracle Solaris, Fedora, BSD (FreeBSD, OpenBSD), Open Source Build
  • 다양한 데이터 유형
    • 기본 요소 : Integer, Numeric, String, Boolean
    • 구조화 : Date/time, Array, Range / Multirange, UUID
    • 문서 : JSON/JSONB, XML, Key-value (Hstore)
    • 기하학 : Point, Line, Circle, Polygon
    • 사용자 정의 : Composite, Custom Types

데이터 무결성

  • UNIQUE, NOT NULL
  • Primary Keys
  • Foreign Keys
  • Exclusion Constraints
  • Explicit Locks, Advisory Locks

동시성, 성능

  • 인덱싱 : B-tree, Multicolumn, Expressions, Partial
  • 고급 인덱싱 : GIST, SP-Gist, KNN Gist, GIN, BRIN, Covering indexes, Bloom filters
  • Sophisticated query planner / optimizer, index-only scans, multicolumn statistics
  • Transactions, Nested Transactions
  • Multi-Version concurrency Control (MVCC)
  • Parallelization of read queries and building B-tree indexes
  • Table paritioning
  • All transaction isolation levels defined in the SQL standard, including Serializable
  • Just-In-Time (JIT) compilation of expressions

신뢰성

  • Write-ahead Logging (WAL)
  • Replication : Asynchronous, Synchronous, Logical
  • Point-In-Time-Recovery(PITR), active standbys
  • Tablespaces

보안

  • 인증 : GSSAPI, SSPI, LDAP, SCRAM-SHA-256, Certificate, ...
  • 견고한 접근통제 시스템
  • 행/열 수준 보안
  • 인증서 및 추가 방법을 통한 다단계 인증

Extension

  • 저장 함수 및 프로시저
  • 절차적 언어 : PL/pgSQL, Perl, Python, ...
  • SQL/JSON 생성자 및 경로 표현식
  • 외부 데이터 래퍼 : 표준 SQL 인터페이스를 사용하여 다른 데이터베이스 또는 스트림에 연결
  • 테이블을 위한 맞춤형 스토리지 인터페이스
  • PostGIS를 포함하여 추가기능을 제공하는 많은 Extension



🔍 단점

  • CRUD 성능이 상대적으로 좋지 않은 편으로 알려져 있다.
  • 읽기 전용의 속도와 안정성이 필요한 경우 특정 SQL 기능을 포함하지 않은 MySQL이 더 가벼운 상태를 유지한다. 그러나, 부하가 많은 상황에서 복잡한 쿼리를 많이 실행할 경우는 PostgreSQl이 더 나은 선택일 수 있다.



🌟 REF

profile
데이터 엔지니어

0개의 댓글