ݺߣ

ݺߣShare 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

PostgreSQL 이야기