같은 MySQL 쿼리는 왜 처음만 느렸을까: InnoDB 버퍼 풀과 스토리지 읽기
닉네임 로직 리팩터링의 추가 쿼리 비용을 측정하다 발견한 첫 실행 지연을 통해, 버퍼 풀 hit가 줄이는 비용과 캐시로도 사라지지 않는 작업을 구분한다.
7개의 글이 있습니다.
닉네임 로직 리팩터링의 추가 쿼리 비용을 측정하다 발견한 첫 실행 지연을 통해, 버퍼 풀 hit가 줄이는 비용과 캐시로도 사라지지 않는 작업을 구분한다.
행마다 달라지는 날짜 하한 때문에 created_at 인덱스를 쓰지 못한 쿼리에, 기존 결과를 보존하는 고정 후보 범위를 추가한 근거를 보여준다.
비정상적인 extra_days 하나가 날짜 계산을 NULL로 만들거나 조회 범위를 넓힐 수 있어, 입력 검증과 인덱스 회귀 확인을 함께 둔 이유를 설명한다.
수정 전후 서버에 같은 fixture와 요청을 보내 배열 순서·커서·필드까지 비교하고, 성능 측정과 결과 검증을 분리한 방법을 보여준다.
published가 인덱스 밖에 있어 조건부 MAX 최적화가 깨진 원인과, 역순 인덱스 탐색이 유효한 데이터 분포 조건을 설명한다.
원본 테이블 크기보다 필터 후 행 수·안쪽 인덱스 비용·EXPLAIN ANALYZE의 loops로 nested-loop 조인 순서를 판단한다.
한글 부분 검색에서 제한된 LIKE와 ngram FULLTEXT가 만드는 결과·토큰·색인 비용을 비교해, 이번에는 LIKE를 유지한 기준을 제시한다.