데이터베이스 인덱스와 페이지네이션 최적화
클러스터/세컨더리/커버링 인덱스의 구조를 정리하고, OFFSET 방식의 느린 페이지네이션을 커버링 인덱스, No Offset, 파티셔닝으로 최적화하는 방법을 비교합니다.
클러스터/세컨더리/커버링 인덱스의 구조를 정리하고, OFFSET 방식의 느린 페이지네이션을 커버링 인덱스, No Offset, 파티셔닝으로 최적화하는 방법을 비교합니다.
응답에 6초 이상 걸리던 페이지의 원인을 실행계획으로 분석하고, MySQL 옵티마이저의 드라이빙 테이블 선택 문제를 STRAIGHT_JOIN으로 해결한 경험을 정리합니다.
if(kakao)에서 소개된 캐시 스템피드 현상의 원인과 해결책(락, 캐시 웜업, 하이브리드 캐시), 그리고 Spring Boot Cold Start와 JIT 컴파일러의 동작 원리를 정리합니다.
MySQL이 인덱스로 B-Tree를 사용하는 이유와 인덱스의 동작 방식을 살펴보고, 복합 인덱스를 활용해 불필요한 단일 인덱스로 인한 자원 낭비를 줄이는 실무 설계 방법을 정리합니다.
락 기반 동시성 제어의 한계를 살펴보고, MVCC가 커밋된 데이터만 읽는 방식과 트랜잭션 격리 수준에 따라 읽는 데이터가 달라지는 원리를 정리합니다.
TCP 연결 과정의 비효율을 DBCP가 어떻게 해결하는지 설명하고, HikariCP의 minimumIdle, maximumPoolSize 등 주요 설정을 정리합니다.
비관적 락의 개념과 S-Lock/X-Lock, 갭 락(Next-Key Lock)의 동작을 살펴보고, JPA 동시성 테스트로 재고 차감 문제를 해결하는 과정을 정리한 글입니다.