SlideShare a Scribd company logo
김상기, 2016.
PostgreSQL
! ! !
좋은 !
BSD 라이선스
FreeBSD vs Linux
PostgreSQL vs MySQL
Redis vs MongoDB
Fork & Merge vs Branch & Merge
좋은 !
어후...촌스러워...;; 아니, 클래식하다고 해두지 뭐....^^
20년 전통의 역사
PostgreSQL 이름이 등장한 지 20년
1986년 POSTGRES 프로젝트가 시작점
배포절차가 전형적인 BSD SW임 - 커미터, 컨
트리뷰터, 커밋페스트
9.0 스트리밍 리플리케이션의 구현 과정, 9.1
fdw 랩퍼 정착 과정, 9.3 백그라운드 워커
좋은 !
Hahaha Money! Money! Money!
오픈소스SW 도입, 비용절감
벤더 기반 상용 데이터베이스의 SW 구매비용
과 유지 비용 vs 커뮤니티 기반 공짜 데이터베
이스 도입 또는 전환과 유지 비용 문제
개발자, 운영자 수급 문제 (머니. 머니? 머니!)
하드웨어 스케일업 비용 - 백업 저장소, 메모
리, 트랜잭션 로그 보관을 위한 빠른 저장소
좋은 !
확장성
CREATE EXTENSION

http://pgxn.org
CREATE FUNCTION
CREATE AGGREGATE
CREATE TYPE
CREATE OPERATOR
CREATE FOREIGN DATA WRAPPER
좋은 !
어벤저스
세상에 있는 오픈 소스 데이터베이스 가운데 가장
진보한 데이터베이스
EnterpriseDB
FUJITSU Enterprise Postgres
Greenplum
그 외 수 많은 postgres fork database
나쁜 !
오류문
postgres=# select '케잌';

ERROR: invalid byte sequence for encoding "EUC_KR":
0x9f 0xe5
postgres=# select cast('2016-06-31' as date);

ERROR: date/time field value out of range: "2016-06-31"
postgres=# select 1/0;

ERROR: division by zero
postgres=# select * from t limit 0,10;

ERROR: LIMIT #,# syntax is not supported
나쁜 !
장애분석 보고서를 위해
구글, 스택오버플로워, 메일링 아카이브, 공식 문서
(구글 번역기)
vi src/backend/postmaster/autovacuum.c
gdb

(gdb) attach 15640

(gdb) bt
나쁜 !
학습 비용
A4 용지 3천 쪽 분량의 공식 문서

(성경책이 2천 페이지 정도)
PostGIS 확장 모듈의 공식 문서도 6백 쪽

















나쁜 !
TLDP를 넘어서는 독해력
글자 뿐인 문서 - docbook sgml
우주 평행 이론을 바탕으로 하는 타임라인 복구
유전자 알고리즘을 바탕으로 하는 쿼리 최적화
소설 쓰는 explain 결과
릴레이션, 튜플, 애트리뷰트
나쁜 !
진보를 표방한 비주류
이상한 !
오 프레들드 그런트버글리
오 아윌 랜디 인디 가블로드
그들만의 글자들
연산자: ~, ~*, #, @-@, <->, |&>,?-|, @>,
@@, #>>, -|-, ...
자료형: 도형, 네트워크, 간격, XML, JSON
반경 1km 내에 있는 주차장 찾기

where p <@ earth_box(ll_to_earth(?, ?) ,
1000)
이상한 !
헷갈리는 해석
"너무 크면 성능이 떨어지고, 너무 적어도 성능이
떨어진다" - redo log size
"너무 잦으면 낭비고, 너무 드물면 비용이 커진다" -
autovacuum 설정값들
"똑똑하다던 최적화기는 통계 정보가 없어 바보가
되고" - auto analyzer의 지능적인 수행
"공짠데 개발자는 낯선 DB니 돈 많이 달라 하고"
이상한 !
부모가 여럿
create table 아빠1 ();

create table 아빠2 ();

create table 아빠3 ();

create table 엄마 ();
create table 자녀 () inherits (아빠1, 아빠2,
아빠3, 엄마);
이상한 !
피고 성소단은 감히 내게 복종할 것을 거부하였고, 

무죄를 입증할 근거가 하나도 없음으로

유죄를 선고한다.
그들만의 규칙
CREATE RULE
Read Committed 기본 격리 수준
select 'a' <> 'a '
이상한 !
우버는 왜 MySQL을
PostgreSQL의 다중키 인덱스 사용시 Heap
Only Tuple 업데이트 문제 제기

- key-value 모델링으로 갈거면, HOT 쓸 수
있는데다, value가 json이면, jsonb gist 인덱
스도 쓸 수 있었을 텐데
쿼리 기반 복제 - 논리 디코딩 기능
메이져 버전 업그레이드 문제 - 진보의 숙명
관련 국내 홈페이지
http://database.sarang.net
http://postgresql.kr/
https://facebook.com/groups/postgres.kr
http://pgday.postgresql.kr/
PostgreSQL 이야기

More Related Content

PDF
Big query at GDG Korea Cloud meetup
PDF
AWS 환경에서 MySQL Infra 설계하기-2부.본론
PDF
PDF
AWS Aurora 운영사례 (by 배은미)
PDF
AWS Aurora 100% 활용하기
PDF
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
PDF
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
PPTX
로그 수집, 집약
Big query at GDG Korea Cloud meetup
AWS 환경에서 MySQL Infra 설계하기-2부.본론
AWS Aurora 운영사례 (by 배은미)
AWS Aurora 100% 활용하기
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
로그 수집, 집약

What's hot (20)

PDF
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
PDF
AWS 환경에서 MySQL BMT
PDF
Amazon Aurora Deep Dive (김기완) - AWS DB Day
PPTX
[211] HBase 기반 검색 데이터 저장소 (공개용)
PDF
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
PDF
형태소 분석기를 적용한 elasticsearch 운영
PDF
게임업계 IT 관리자를 위한 7가지 유용한 팁 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
PDF
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
PDF
[215]네이버콘텐츠통계서비스소개 김기영
PDF
파이어베이스 네이버 밋업발표
PDF
Ansible
PDF
[243]kaleido 노현걸
PDF
[246] foursquare데이터라이프사이클 설현준
PPTX
About memcached
PDF
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
PDF
[225]yarn 기반의 deep learning application cluster 구축 김제민
PDF
[Pgday.Seoul 2017] 2. PostgreSQL을 위한 리눅스 커널 최적화 - 김상욱
PDF
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
PPTX
Node Js와 Redis를 사용한 구조화된 데이터
PPTX
AWS RDS, DYNAMO
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
AWS 환경에서 MySQL BMT
Amazon Aurora Deep Dive (김기완) - AWS DB Day
[211] HBase 기반 검색 데이터 저장소 (공개용)
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
형태소 분석기를 적용한 elasticsearch 운영
게임업계 IT 관리자를 위한 7가지 유용한 팁 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
[215]네이버콘텐츠통계서비스소개 김기영
파이어베이스 네이버 밋업발표
Ansible
[243]kaleido 노현걸
[246] foursquare데이터라이프사이클 설현준
About memcached
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[225]yarn 기반의 deep learning application cluster 구축 김제민
[Pgday.Seoul 2017] 2. PostgreSQL을 위한 리눅스 커널 최적화 - 김상욱
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
Node Js와 Redis를 사용한 구조화된 데이터
AWS RDS, DYNAMO
Ad

Similar to PostgreSQL 이야기 (20)

PPTX
Spark machine learning & deep learning
PPTX
Mongodb and spatial
PDF
2012 빅데이터 big data 발표자료
PDF
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
PDF
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
PDF
빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016
PPT
google dinos
PDF
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
PDF
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
PPTX
5일차.map reduce 활용
PDF
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
PDF
Introduction to mongo db
PDF
하둡 좋은약이지만 만병통치약은 아니다
PDF
AWS Innovate: Best Practices for Migrating to Amazon DynamoDB - Sangpil Kim
PPTX
Node.js를 사용한 Big Data 사례연구
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
PDF
AWS CLOUD 2017 - Amazon Aurora를 통한 고성능 데이터베이스 운용하기 (박선용 솔루션즈 아키텍트)
PDF
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
PDF
Daum내부 Hadoop 활용 사례 | Devon 2012
PDF
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark machine learning & deep learning
Mongodb and spatial
2012 빅데이터 big data 발표자료
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016
google dinos
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
5일차.map reduce 활용
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
Introduction to mongo db
하둡 좋은약이지만 만병통치약은 아니다
AWS Innovate: Best Practices for Migrating to Amazon DynamoDB - Sangpil Kim
Node.js를 사용한 Big Data 사례연구
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
AWS CLOUD 2017 - Amazon Aurora를 통한 고성능 데이터베이스 운용하기 (박선용 솔루션즈 아키텍트)
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Daum내부 Hadoop 활용 사례 | Devon 2012
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Ad

More from I Goo Lee (20)

PDF
MySQL_Fabric_운영시유의사항
PDF
MySQL Deep dive with FusionIO
PDF
From MSSQL to MySQL
PDF
From MSSQL to MariaDB
PDF
Backup automation in KAKAO
PDF
텔레그램을 이용한 양방향 모니터링 시스템 구축
PDF
Federated Engine 실무적용사례
PDF
MySQL 상태 메시지 분석 및 활용
PDF
MySQL 5.7 NF – Optimizer Improvement
PDF
MySQL 5.7 NF – JSON Datatype 활용
PDF
Intro KaKao MRTE (MySQL Realtime Traffic Emulator)
PDF
MS 빅데이터 서비스 및 게임사 PoC 사례 소개
PDF
AWS 환경에서 MySQL Infra 설계하기-2본론
PDF
AWS 환경에서 MySQL Infra 설계하기-1도입부분
PDF
MySQL Slow Query log Monitoring using Beats & ELK
PDF
MySQL Audit using Percona audit plugin and ELK
PDF
Intro KaKao ADT (Almighty Data Transmitter)
PDF
Binlog Servers 구축사례
PDF
Intro ProxySQL
PDF
1.mysql disk io 모니터링 및 분석사례
MySQL_Fabric_운영시유의사항
MySQL Deep dive with FusionIO
From MSSQL to MySQL
From MSSQL to MariaDB
Backup automation in KAKAO
텔레그램을 이용한 양방향 모니터링 시스템 구축
Federated Engine 실무적용사례
MySQL 상태 메시지 분석 및 활용
MySQL 5.7 NF – Optimizer Improvement
MySQL 5.7 NF – JSON Datatype 활용
Intro KaKao MRTE (MySQL Realtime Traffic Emulator)
MS 빅데이터 서비스 및 게임사 PoC 사례 소개
AWS 환경에서 MySQL Infra 설계하기-2본론
AWS 환경에서 MySQL Infra 설계하기-1도입부분
MySQL Slow Query log Monitoring using Beats & ELK
MySQL Audit using Percona audit plugin and ELK
Intro KaKao ADT (Almighty Data Transmitter)
Binlog Servers 구축사례
Intro ProxySQL
1.mysql disk io 모니터링 및 분석사례

PostgreSQL 이야기