PRO DBDATA

PRO DBDATA

MySQL TempTable이 디스크로 전환되는 이유

MySQL TempTable이 디스크로 전환되는 이유: tmp_table_size 실험으로 확인한 진단 방법

MySQL에서 집계 쿼리가 느려지면 실행계획의 Using temporary부터 보게 됩니다. 하지만 이 표시는 내부 임시 테이블을 사용한다는 뜻일 뿐, 그 임시 테이블이 메모리에 …

Undo Log 폭증으로 인한 Disk Full 방지

Undo Log 폭증으로 인한 Disk Full 방지: Purge Thread 동작 원리와 innodb_undo_tablespaces 최적화 가이드

데이터 양은 거의 그대로인데 디스크 사용률 경보가 울리는 경우가 있습니다. 테이블 크기는 정상이고, 데이터 디렉터리의 undo_001, undo_002 파일만 비정상적으로 커져 있…

ai thumbnail photography MySQL SELECT FOR UPDATE 락 대기 해결 1789909016

MySQL SELECT FOR UPDATE 락 대기 해결: Lock Escalation 오해와 1205 타임아웃 분석

주문 한 건을 SELECT ... FOR UPDATE로 조회했을 뿐인데, 전혀 다른 주문의 UPDATE가 멈추고 결국 1205 오류로 끝나는 경우가 있습니다. 이때 data_loc…

MySQL Next-Key Lock과 Gap Lock 분석

MySQL Next-Key Lock과 Gap Lock 분석: 서로 다른 INSERT가 교착 상태에 빠지는 이유

같은 행을 수정하지 않으면 교착 상태도 생기지 않을 것이라고 생각하기 쉽습니다. 하지만 MySQL InnoDB의 기본 격리 수준인 REPEATABLE READ에서는 Next-Key…

MySQL 8.4 CTE와 Derived Table의 MERGE, NO_MERGE 실행계획 비교

MySQL CTE와 Derived Table 성능 비교: MERGE·NO_MERGE 실행계획으로 본 구체화 비용

월별 정산 관리자 화면에서 특정 거래처를 조회하면 결과는 몇 행밖에 나오지 않는데 응답이 늦게 오는 문제가 있었습니다. 실행계획을 열어 보니 서브쿼리가 모든 거래처의 정산 데이터를…

MySQL 8.4 Invisible Index와 함수 기반 인덱스 실행계획 비교

MySQL 인덱스 삭제 전 Invisible Index로 검증하기, 함수 기반 인덱스 실측 비교 (MySQL 8.4)

운영 중 슬로우 쿼리를 확인하다 보면, 조건 컬럼에 인덱스가 분명히 있는데 실행계획은 테이블 풀스캔으로 나오는 SQL을 만나게 됩니다. 제가 확인했던 경우도 원인은 조건절 왼쪽 컬…

MySQL 8.4 Index Skip Scan 실전 분석

MySQL 복합 인덱스, 선두 컬럼 없이 조회하면 어떻게 될까? Skip Scan 실측 비교 (MySQL 8.4)

주문 테이블에는 이미 (status, created_at) 복합 인덱스가 있습니다. 상태별 주문 목록을 위해 만든 인덱스입니다. 그런데 어느 날 “일자별 매출 화면&#8…

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.