메뉴 건너뛰기

(*.168.0.1) 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 첨부
Extra Form
출처 https://dataleader.tistory.com/34

오픈소스 DB 전성시대, 기업들이 PostgreSQL을 선택하는 이유

“클라우드 전환에서의 오픈소스 DB, 선택 아닌 필수”

클라우드 도입 확대로 다가온 오픈소스 DBMS 전성시대, 그 중에서 개발자들이 가장 선호하는 포스트그레SQL은 대량의 데이터를 다루는 기업 및 산업에서 특히 유용한 데이터베이스입니다. 이 백서에서는 엔터프라이즈 업무에 적합한 특징을 가진 포스트그레SQL이 왜 기업들이 선호하는 데이터베이스 솔루션으로 인정받고 있는지 소개합니다.


[PostgresSQL 이야기 1화] PostgresSQL 특징 및 장단점 소개

2022. 3. 12. 18:19

postgresSQL.png
로고에 코끼리를 사용하는 것은 '코끼리는 크고 강하고 믿음직하며 기억력이 좋다'는 의미에서 유래했다고 합니다.
이러한 이미지는 Hadoop이나 Evernote도 관련 로고도 이러한 부분에서 로고에 코끼리가 들어갔다고 하네요.

1. PostgresSQL는

PostgreSQL는 오픈소스로 개발된 관계형 데이터베이스 입니다.

PostgreSQL은 1996년을 시작으로(1997년, 첫 번째 오픈 소스가 공개) 왕성하게 활동중인 커뮤니티를 통해 계속적인 업데이트가 있습니다.

현재 PostgreSQL은 다양한 영역에서 활용 되고 있고, 다른 RDBMS와의 비교해서할 때도 상위 순위(전체  4위)로 이용되고 있습니다.

특히 일본의 공공영역에서는 "상용은 오라클, 오픈소스는 PostgreSQL"라고 할 정도로 이용이 활발하다고 합니다.

Rank
DBMS
Database Model
Mar
Feb
Mar
1
Oracle 
Relational, Multi-model 
1251.32
-5.51
-70.42
2
MySQL 
Relational, Multi-model 
1198.23
-16.45
-56.59
3
Microsoft SQL Server 
Relational, Multi-model 
933.78
-15.27
-81.52
4
PostgreSQL  
Relational, Multi-model 
616.93
7.54
67.64
5
MongoDB 
Document, Multi-model 
485.66
-2.98
23.27
6
Redis 
Key-value, Multi-model 
176.76
0.96
22.61
7
IBM Db2
Relational, Multi-model 
162.15
-0.73
6.14
8
Elasticsearch
Search engine, Multi-model 
159.95
-2.35
7.61
9
Microsoft Access
Relational
135.43
4.17
17.29
10
SQLite 
Relational
132.18
3.81
9.54

대부분의 교육을 위주로 처음 RDBM를 배울 때 MySQL, MarinaDB 등이 손쉽게 접하게 됩니다.

이는 이용하기가 쉽고, 소규모의 사업장이나, 데이터베이스 교육장에서 충분한 성능을 가지기 때문 입니다.

가장 대중적으로 이용되는 PostgresSQL과 MySQL의 가장 큰 차이는 무엇일까요? 두 RDBMS에서 아래와 같습니다.

항목
PostgresSQL13
MySQL 8
최대 DB 크기(Database Size)
무제한
무제한
최대 테이블 크기(Table Size / 8KB 기준)
32TB
32TB
최대 레코드 크기(Row Size)
16TB
512GB
최대 컬럼크기(Field Size)
1GB
4GB
테이블 당 최대 레크드 개수(Rows per Table)
무제한
무제한
테이블당 최대 컬럼 개수(Column per Table)
1,600
1,017
테이블당 최대 인덱스 개수(Indexes per Table)
무제한
64

PostgresSQL의 가장 큰 장점이라고 하면, 인텍스에 특화된 Partial Index, Parallel Index Scan을 지원한다는 점입니다.

반면에 MySQL은 이러한 기능을 지원하지 않습니다. 초기 사업을 시작하거나 응용을 개발할 때 데이터베이스의 선택은 매우 중요합니다. 

2. PostgresSQL 장점

PostgresSQL에 특장점에 대해서 살펴보도록 하겠습니다.

일단 먼저, 다들 아시겠지만 라이센스 비용이 전혀 들지 않는 다는 점입니다.

PostgreSQL은 BSD(Berkeley Software Distribution) 라이센스를 기반으로 개발되었습니다.

그러므로 기업의 입장에서 데이터 양이나 성능의 증가로 인해 증설이 이뤄지더라도 라이센스 문제가 자유로워 부담이 전혀 없습니다.  

PostgreSQL은 Perl, Python, Java, 심지어 Bash와 같은 다른 임베디드 언어로 확장될 수 있습니다.

BSD란?

BSD는 1977년 부터 1995년까지 미국 캘리포니아 대학교 버클리의 CSRG(Computer System Research Group)에서 개발한 유닉스 프로그램 운영체제 입니다.

오늘날의 BSD라라는 용어는 유닉스 계열 운영체제 계열에서 분기되어 형성된 BSD 파생판을 두루 가리키는 용어로 자리잡혀 있습니다.

즉 PostgreSQL은 오픈 소스 프로젝트이며 소스가 오픈되어 개발되었습니다.

이는 결과적으로 PostgreSQL은 상용 제품이 아니라는 점을 의미하며 모든 사람의 소유할 수 있습니다. 

또한 다양한 플러그인이 개발되어 있어 다양한 기능 개선이 가능합니다.

PostgreSQL은 Linux, Unix, Mac OS X 및 Microsoft Windows를 포함한 거의 모든 운영 체제에서 실행되며

Raspberry Pi 보드와 같은 상용 하드웨어에서도 실행할 수 있습니다.

가장 큰 넓은 영역의 ANSI SQL를 지원합니다. 

PostgreSql은 표준에 좀 더 가깝게 발전하고 있으며,

SQL:2011 규정에 필요한 179개의 기능 중 160개를 지원해 다른 DBMS 보다 충실성이 높습니다.

이는 오라클보다 높은 수준으로, 다른 DBMS가 PostgresSQL를 벤치마크 하기도 합니다. 

PostgreSQL는 RDBMS가 갖춰야 하는 데이터베이스 트랙션의 성질 ACID 모두지원하며 안정성을 갖춘 DBMS 입니다.

특히 데이터의 무결성과 동시성에 매우 강력한 능력을 가지고 있습니다. 

즉 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영구성(Durability)을 보장합니다.

상세 내용은 아래를 참고하세요

(원자성 - Atomicity) 트랜잭션의 작업 내용이 데이터베이스에 모두 반영되거나,

아예 반영되지 않아야 합니다. 즉, 작업 단위를 일부분만 실행하지 않는다는 것을 의미합니다.

(일관성 - Consistency) 트랜잭션이 성공적으로 완료되면

일관적인 DB상태(Datatype이 변하지 않는 것 등의 상태 변화가 일어나지 않는것)를 유지해야 합니다.

(격리성 - Isolation) 하나의 트랜잭션 작업이 수행 시 다른 트랜잭션 작업이 중간에 수행될 수 없습니다. 

즉, 트랜잭션 작업 사이의 간섭이 있어선 안되고, 서로 간섭할 수 없습니다.

(지속성 - Durability) 트랜잭션이 성공적으로 완료되면 수행된 트랜잭션은 영원히 반영이 됩니다. 

commit을 통하여 트랜잭션 작업 내용을 완료할 수 있습니다.

다중버전 동시성 제어를 제공합니다. (MVCC)

이 개념을 알기 위해선 우선 동시성 제어에 대한 부분을 알아야 합니다. 

동시성 제어란?

다수의 사용자가 동시에 DBMS 트랜잭선을 일으켜 상호간섭이 발생하는 사항에서 Database를 보호하는 통제방법을 말합니다.

동시성의 허용은 DBMS의 일관성에 큰 위해를 가하기 때문에 이에 대한 처리는 매우 중요합니다.

다중버번 동시시성(MVCC) 제어란?

동시성 제어에 한 방법으로 데이터에 접근하는 사용자는 갱신/변경된 데이터를 다른 그 이전 데이터와 버전을 달리해 관리하고,

이를 기반으로 일관성을 유지하는 방법입니다. PostgresSQL은 이 방식을 지원합니다.

일반적인 RDBMS 보다 매우 빠르게 작동하는 장점이 있습니다.

단점은 사용하지 않는 데이터가 계속 쌓이므로 주기적으로 데이터를 정리하는 것이 요구된다는 점입니다.

물론 PostgresSQL은 Autovaccume을 통해 이를 해소 할 수 있지만, 이 기능도 완벽하게 이 부분을 처리해 내지는 못합니다. 

3. PostgresSQL의 단점

PostgresSQL의 대락적인 장점은 알아보았습니다. 그럼 단점도 분명히 존재할 텐데요

단점에 대해서도 알아보겠습니다. 

UPDATE 쿼리에 약하다

PostgresSQL은 MarinaDB나 MySQL에 비해 업데이트가 굉장이 불안정한 문제를 가지고 있습니다.

이 문제는 UPDATE를 반복적으로 수행해야하는 응용서비스에는 많은 제약을 가져옮니다.

메모리 성능이 떨어진다.  

모든 새로운 클라이언트 연결에 대해 PostgresSQL은 새로운 프로세스 형식으로 일으킵니다.

각각의 새로운 프로세스에  메모리(약 10MB)가 할당되므로 많은 연결이 있는 경우 메모리가 빠르게 증가합니다.

따라서 읽기가 많은 간단한 작업의 경우 PostgreSQL은 일반적으로 MySQL과 같은 다른 RDBMS보다 성능이 떨어집니다.

마지막으로 유튜브에 있는 PostgresSQL에 대한 동영상을 남깁니다. 

https://www.youtube.com/watch?v=Ek7hskYF-x8



List of Articles
번호 제목 날짜 조회 수
131 데이터 모델링 개념 & ERD 다이어그램 작성 목차 데이터 모델링 이란? 데이터 모델링 순서 절차 1. 업무 파악 (요구사항 수집 및 분석) 2. 개념적 데이터 모델링 3. 논리적 데이터 모델링 4. 물리적 데이터 ... 2024.12.07 408
130 MariaDB, INFORMATION_SCHEMA INNODB_TRX 테이블 INFORMATION_SCHEMA INNODB_TRX 테이블INNODB_TRX 테이블에 트랜잭션이 잠금을 대기하고 있는지 트랜잭션이 시작되었을 때 트랜잭션이 실행하는 SQL 문 (존재하는... 2024.11.26 503
129 MariaDB 용량조회 mariadb를 운영하다보면 filesystem 경로에 데이터가 족족 쌓이는걸 확인할 수 있다. 오라클과 구조가 달라 테이블스페이스라는 개념이 없기때문이다. postgresql... 2024.11.17 422
128 Entity(엔터티)의 개념 1. Entity 의 개념 Entity : 실체, 객체라는 의미로 실무적으론는 앤터티라고 부른다. 즉 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것으... 2024.11.07 537
127 NCP - Cloud DB for MySQL MySQL 데이터베이스를 쉽고 간편하게 구축하고 관리Cloud DB for MySQL 상품을 통해 MySQL 데이터베이스를 손쉽게 구축하고 운영할 수 있습니다. Cloud DB는 네이... file 2024.10.19 530
126 NCP - MariaDB Enterprise Server MariaDB Enterprise Server는 엔터프라이즈 신뢰성, 안정성 및 장기적인 지원은 물론, 비즈니스 크리티컬 및 미션 크리티컬 애플리케이션을 위한 대용량 데이터베... file 2024.10.19 589
125 MySQL, MariaDB 차이점 서론데이터베이스에는 RDBMS와 NoSQL이 있다. RDBMS의 대표적인 예로는 MySQL이 있고, NoSQL의 대표적인 예로는 MongoDB가 있다. 그런데 나는 처음 데이터베이스... file 2024.10.19 569
124 DB 모델링 - ERD(Entity Relationship Diagram) ERD(Entity Relationship Diagram) 개체 또는 데이터 간의 관계를 표현한 도식화된 그림을 말합니다. 글로 표현되어 있는 관계를 그림으로 나타낸 것입니다. Enti... file 2024.09.24 556
123 MongoDB의 특징과 이점 MongoDB란? MongoDB(IBM 외부 링크)는 오픈소스 비관계형 데이터베이스 관리 시스템(DMBS)으로, 테이블과 행 대신 유연한 문서를 활용해 다양한 데이터 형식을 처... 2024.09.15 492
122 CUBRID, 국내 유일의 오픈소스 DBMS CUBRID, 국내 유일의 오픈소스 DBMS다. 다양하게 쓰인다.겁나 잘나간다 와! 이 모든 기능이 무료! 엔진의 소스 코드가 수정되면 소스를 까야하지만, 큐브리드 DBM... file 2024.09.15 547
121 2023년 데이터베이스 관리 시스템(DBMS) 순위 2023년 데이터베이스 관리 시스템(DBMS) 순위 Database/INFO / aruru / 2023. 3. 17. 19:52 DB-Engines 에서는 자체 산정 기준에 따라 매월 DBMS 순위를 산정합니... file 2024.09.15 812
120 MySQL 메이저 버전 업그레이드(MySQL 5 → MySQL 8) — 네이버 클... 네이버클라우드에서 주요 고객 기술 지원을 담당하는 TAM (Technical Account Manager) 강철곤입니다. 업무 특성상 다양한 고객・파트너와 소통하며 업무를 진행... file 2024.09.15 525
119 MySQL, EOS 및 EOL MySQL, EOS 및 EOL file 2024.09.15 599
118 MariaDB, LTS 및 EOS development and production https://mariadb.com/downloads/connectors/ MariaDB Community Version은 Free이며 해당 제품을 기반으로 작성하였습니다. Stable D... 2024.09.09 681
117 PostgreSQL 설치 및 세팅 & pgAdmin 사용법 - Windows PostgreSQL 설치 및 세팅 & pgAdmin 사용법 - Windows 이번 글에서는 PostgreSQL 설치 방법과 초기 세팅, pgAdmin을 사용해 Database 생성 및 User 생성에 대... 2024.02.19 708
» [PostgresSQL 이야기 1화] PostgresSQL 특징 및 장단점 소개 오픈소스 DB 전성시대, 기업들이 PostgreSQL을 선택하는 이유“클라우드 전환에서의 오픈소스 DB, 선택 아닌 필수” 클라우드 도입 확대로 다가온 오픈소스 DBMS 전... file 2024.02.19 593
115 PostgreSQL / 오픈소스 vs 상용, 벌어지는 인기 트렌드 격차 PostgreSQL / 오픈소스 vs 상용, 벌어지는 인기 트렌드 격차 지난 해부터 소프트웨어 업계에서는 오픈소스 생태계가 대세가 되면서 상용 DBMS 사용 입지가 줄어들... file 2024.02.19 508
114 데이터 통합 도구 BTL Data Integrator(BTL DI) 소개 https://www.youtube.com/watch?v=wT6ng96G6XU 데이터 통합 도구 BTL Data Integrator(BTL DI) 소개 BTL Data Integrator(BTL DI) 는 데이터 통합 및 마이그레이... 2023.06.22 740
113 [proc,ec,esql] 가장 기본적인 ec, 프로씨(proc) insert 프로그램 [proc,ec,esql] 가장 기본적인 ec, 프로씨(proc) insert 프로그램 프로씨(proc) 강좌나 한국어 자료가 검색해보면 없다. 그래서 프로씨에 관해 궁금한 사람들을 ... 2023.06.16 564
112 DB 암호화 - Echelon V2.5 DB 암호화 - Echelon V2.5 - 데이터보안소프트(DataBoanSoft Inc.) Echelon V2.5는 국내 1300여개 고객사에서 검증된 컬럼단위 DB암호화 솔루션으로 국내최초 CC... 2023.03.06 552
목록
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7