Database 34
- CDC의 원리와 한계 - 로그 기반 변경 포착, 초기 스냅샷, 스키마 변경
- 카카오 「MySQL 인증 플러그인 caching_sha2_password에 대한 이해」 리뷰 — 비밀번호 해시가 바뀌는 것보다 '평문이 서버까지 가야 한다'는 점이 전환의 진짜 비용
- 커넥션과 세션 - 커넥션 풀이 실제로 아끼는 것
- 파티셔닝과 샤딩 - 기준 선택, 로컬과 글로벌 인덱스, 재분배 비용
- WAL과 체크포인트 - 커밋은 언제 디스크에 닿는가
- 카카오 「MySQL Json 데이터 타입의 저장 구조와 성능 비교」 리뷰 — 통째로 넣고 통째로 꺼내면 TEXT, 키로 파고들면 JSON
- TimescaleDB를 시계열 DB로 고른 이유 — Hypertable과 연속 집계
- 락의 종류와 대기 - row, gap, next-key, intention과 데드락 탐지
- 실행 계획을 읽는 법 - 연산자, 비용 모델, 카디널리티 추정이 틀어지는 지점
- 키 생성 병목을 추적해 구조를 바꾼 기록: Part 2 - SELECT 안에서 UPDATE가 일어나고 있었다
- Postgres 커넥션 하나의 비용 - 풀을 키우면 대기가 사라지는 게 아니라 볼 수 없는 곳으로 옮겨간다
- B+Tree 인덱스의 내부 - 노드 분할, 클러스터드와 논클러스터드, 커버링이 아끼는 것
- 인덱스가 선택되지 않는 순간 - 컬럼에 캐스팅 하나가 3,000배, 그리고 추정이 31.7배 틀려도 계획이 안 바뀌는 경우
- 트랜잭션 전파 7종 - 각 옵션이 커넥션과 롤백에 남기는 결과
- 키 생성 병목을 추적해 구조를 바꾼 기록: Part 3 - 채번을 INSERT 시점으로 옮기고 범위 단위로 받기
- 격리 수준의 이상 현상을 직접 만들기 - 같은 REPEATABLE READ에서 PostgreSQL은 중단시키고 MySQL은 조용히 덮어썼다
- SLASH 21 리뷰 - MySQL HA & DR Topology: MMM, 대칭 DR 구성, 바이너리 로그 필터, super_read_only 안전장치
- 격리 수준과 이상 현상 - 표준이 정의한 것과 MySQL·PostgreSQL이 실제로 하는 것
- 키 생성 병목을 추적해 구조를 바꾼 기록: Part 1 - INSERT가 느린 줄 알았다
- 카카오 「MySQL ALTER DDL 수행 방식에 대한 이해」 리뷰 — Copy·In-Place·Instant는 '무엇을 복사하느냐'보다 '언제 Exclusive 메타 락을 잡느냐'로 구분된다
- 카카오 「MySQL DATETIME, TIMESTAMP 데이터 타입에 대한 분석」 리뷰 — 바이트 단위 저장 구조부터 아직 안 고쳐진 Y2K38까지
- Redo Log와 Undo Log를 어떻게 구분해야 하는가
- 데이터베이스 리플리케이션 기본 정리
- 데이터베이스 트랜잭션을 어떻게 봐야 하는가
- ACID를 실무적으로 이해하기
- MVCC를 어떻게 이해해야 하는가
- Gap Lock
- [3주차] 속도를 지배하는 DB 인덱스
- 데이터베이스 페이징 성능을 어떻게 봐야 하는가
- Connection Pool
- 점 이력과 선분 이력 모델링
- 데이터베이스 인덱스를 어떻게 이해해야 하는가
- Transaction
- 배열을 데이터베이스에 저장할 때 무엇을 먼저 판단해야 하는가