본문 바로가기
전체 105건
105
Database17분 읽기
조회수 하나가 사이트맵을 망친다 — Prisma updatedAt과 lastmod 오염
조회수를 Prisma update로 올리면 @updatedAt이 매번 바뀌어 사이트맵 lastmod와 dateModified가 "마지막으로 누가 본 시각"이 된다. 원인, 탐지 SQL, raw SQL 카운터로 고친 방법을 정리했다.
#Prisma#updatedAt#사이트맵 lastmod
2026.10.14
104
Database10분 읽기
실행계획이 갑자기 바뀌었을 때 — 플랜 고정과 쿼리 힌트 다루기
어제까지 빠르던 쿼리가 오늘 느려지는 이유와 대응책을 정리한다. 파라미터 스니핑, 통계 갱신에 따른 계획 변경, 힌트와 플랜 고정의 사용법, 그리고 그 전에 해야 할 구조적 해결을 다룬다.
#실행계획#쿼리튜닝#파라미터스니핑
2026.09.20
103
Database8분 읽기
학습 기반 쿼리 최적화 — 모델이 옵티마이저를 도울 수 있는 지점
옵티마이저가 실행계획을 고르는 과정에서 무엇이 틀리는지, 학습 기반 접근이 어디를 개선하는지 정리한다. 카디널리티 추정 오류, 플랜 선택, 적용 시 운영 리스크와 검증 방법을 다룬다.
#쿼리최적화#옵티마이저#카디널리티
2026.09.19
102
Database12분 읽기
포스트그레SQL 파티션 재구성 — 병합·분할을 안전하게 수행하는 절차
시계열 파티션을 합치거나 쪼개야 할 때 쓰는 DETACH/ATTACH 패턴을 정리한다. 잠금 범위, CONCURRENTLY 옵션, 제약 조건 검증 생략, 대용량에서의 배치 이동까지 실무 절차로 다룬다.
#PostgreSQL#파티셔닝#시계열
2026.09.17
101
Database9분 읽기
포스트그레SQL 전문검색의 한계 — tsvector로 안 되는 것과 BM25 확장의 자리
tsvector·ts_rank가 실제 검색 품질에서 부족해지는 지점을 짚는다. 랭킹 모델의 차이, 한국어 형태소 처리, 자동완성과 오타 보정, 그리고 언제 전용 검색엔진이나 BM25 확장으로 넘어가야 하는지 정리한다.
#PostgreSQL#전문검색#tsvector
2026.09.15
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