본문 바로가기
전체 100
100
Database19분 읽기
SQL 윈도우 함수 실전 — ROW_NUMBER·RANK·LAG/LEAD로 top-N·전월대비·이동평균 뽑기
OVER·PARTITION BY·ORDER BY와 ROWS/RANGE 프레임으로 그룹별 top-N, LAG 전월 대비, 누적합, 7일 이동평균, 세션화를 실제 SQL 예시로 정리했습니다. GROUP BY와의 차이와 흔한 함정까지.
#SQL#윈도우함수#window function
2026.09.09
99
Database19분 읽기
DB 커넥션 풀 튜닝 — PgBouncer와 풀 사이징 공식으로 커넥션 폭증 잡기
커넥션 풀은 클수록 좋은 게 아니다. 왜 PostgreSQL 커넥션이 비싼지, 풀 크기 공식과 리틀의 법칙, PgBouncer transaction/session 풀링, prepared statement 함정, 서버리스·람다 커넥션 폭증까지 실무로 정리한다.
#PgBouncer#커넥션 풀#PostgreSQL
2026.09.08
98
Database20분 읽기
CDC와 Debezium — DB 변경을 실시간 파이프라인으로 흘려보내기
폴링 대신 트랜잭션 로그(WAL)를 읽어 DB 변경을 실시간으로 캡처하는 CDC. Debezium과 Kafka Connect로 캐시 무효화·검색 인덱스 동기화·아웃박스 패턴을 구현하고 스키마 변경까지 다루는 실전 가이드.
#CDC#Debezium#Kafka Connect
2026.09.08
97
Database20분 읽기
PostgreSQL 인덱스 완전정복 — B-tree·GIN·GiST·BRIN 언제 어떻게 쓰나
PostgreSQL 인덱스 총정리. B-tree·GIN·GiST·BRIN을 언제 쓰는지, 복합 인덱스 컬럼 순서 정하는 법, 부분·표현식·커버링 인덱스, EXPLAIN으로 실제 타는지 확인하는 법과 인덱스가 안 타는 흔한 이유까지 실무 기준으로 정리했다.
#PostgreSQL#인덱스#B-tree
2026.09.07
96
Database6분 읽기
PostgreSQL 파티셔닝 — 수억 행 로그 테이블 다루기
큰 시계열 테이블을 RANGE 파티셔닝으로 나누기. 파티션 프루닝으로 조회를 빠르게, DROP으로 오래된 데이터를 즉시 지우는 실전 운영법을 담았습니다.
#파티셔닝#partitioning#PostgreSQL
2026.08.25
95
Database6분 읽기
pgvector — PostgreSQL로 벡터 검색·RAG 구현하기
PostgreSQL 안에서 임베딩 유사도 검색을 하는 pgvector. 거리 연산자 선택, HNSW 인덱스, 하이브리드·필터 검색까지 실전 관점으로 정리했습니다.
#pgvector#벡터검색#임베딩
2026.08.24
94
Database6분 읽기
prepared statement 플랜 캐시 — generic vs custom plan
빠르라고 넣은 prepared statement가 오히려 느려지는 이유. generic vs custom plan의 저울질, 편중 데이터의 함정, plan_cache_mode와 PgBouncer 조합까지.
#PostgreSQL#prepared statement#plan cache
2026.08.19
93
Database5분 읽기
카디널리티 추정 — 플래너가 행 수를 예측하는 법
인덱스가 있는데 왜 안 탈까. 범인은 대개 틀린 행 수 추정입니다. pg_stats 통계와 EXPLAIN의 추정 대 실제, 확장 통계로 컬럼 상관을 바로잡는 법을 다룹니다.
#PostgreSQL#카디널리티#통계
2026.08.18
92
Database6분 읽기
work_mem — 정렬과 해시가 디스크로 새는 순간
정렬·해시가 디스크로 스필하면 쿼리가 급격히 느려집니다. work_mem이 연산당이라는 함정, EXPLAIN으로 스필을 잡는 법, OOM 없이 안전하게 올리는 국소 튜닝.
#PostgreSQL#work_mem#정렬
2026.08.17
91
Database6분 읽기
LISTEN/NOTIFY — PostgreSQL만으로 실시간 알림 구현하기
별도 메시지 브로커 없이 DB만으로 실시간 알림을. LISTEN/NOTIFY의 트랜잭션 결합·페이로드 한계와, 유실을 막는 아웃박스 패턴, 커넥션 풀 함정까지 정리했습니다.
#PostgreSQL#LISTEN NOTIFY#pub/sub
2026.08.17
90
Database5분 읽기
fillfactor — UPDATE 많은 테이블을 살리는 저장 옵션
페이지를 일부러 덜 채우는 fillfactor가 왜 UPDATE 헤비 테이블의 성능을 좌우할까. HOT 업데이트가 앉을 자리를 만드는 원리와 워크로드별 권장값, 검증법까지.
#PostgreSQL#fillfactor#HOT update
2026.08.16
89
Database6분 읽기
HOT 업데이트 — 인덱스 쓰기를 건너뛰는 PostgreSQL 최적화
UPDATE 많은 테이블만 유독 인덱스가 부풀어 오른다면 HOT을 못 타는 겁니다. Heap-Only Tuple의 조건과 hot_pct 측정, 인덱스 다이어트·fillfactor로 끌어올리는 법.
#PostgreSQL#HOT update#Heap-Only Tuple
2026.08.15