DATABASE
트랜잭션 스케줄과 격리 수준
트랜잭션이 섞여 실행되는 순서인 스케줄과 시리얼라이저블의 뜻, DB가 검사 대신 락과 MVCC라는 규칙을 쓰는 이유, 격리 수준 네 단계와 데드락을 예제 흐름도로 정리합니다.
트랜잭션이 섞여 실행되는 순서인 스케줄과 시리얼라이저블의 뜻, DB가 검사 대신 락과 MVCC라는 규칙을 쓰는 이유, 격리 수준 네 단계와 데드락을 예제 흐름도로 정리합니다.
비관적 락이 분산 환경에서 갖는 한계와 Redisson 분산락을 사용하는 이유, DB 안에서의 대기와 Redisson pub/sub 방식의 락 획득 차이, 상황별 트레이드오프를 흐름도와 함께 정리합니다.
락 기반 동시성 제어의 한계를 살펴보고, MVCC가 커밋된 데이터만 읽는 방식과 트랜잭션 격리 수준에 따라 읽는 데이터가 달라지는 원리를 예제 흐름도와 함께 정리합니다.
DB 커넥션을 매번 새로 맺을 때 거치는 여섯 단계와 그 문제를 흐름도로 정리하고, 커넥션 풀과 DataSource 추상화가 이를 어떻게 해결하는지 설명합니다.
1억 건 규모 테이블의 슬로우 쿼리와 DB 메모리 적재 문제를 실무에서 겪은 과정과, 샤딩·파티셔닝으로 해결하는 방법, DELETE로 용량이 줄지 않는 이유를 정리합니다.
H2 데이터베이스를 설치해 member 테이블을 만들고, build.gradle과 application.properties를 설정해 스프링 프로젝트와 연동하는 과정을 정리합니다.