실행 계획 읽기
한 줄을 세 덩어리로 나누면
EXPLAIN ANALYZE
가 빨리 읽힌다
먼저
어떻게 찾는지
를 보고, 다음에 옵티마이저의
예상 규모
, 마지막으로
실제 실행 시간
을 확인합니다.
Index Scan using idx_users_email on users
(cost=0.42..8.44 rows=1 width=100)
Execution Time: 0.05 ms
1. 접근 방식
Index Scan
은 인덱스를 따라 바로 찾는다는 뜻
idx_users_email
인덱스를 사용해
users
테이블의 후보 행을 좁힙니다. 전체를 훑는 것이 아니라
필요한 키 범위부터 접근
한다는 점이 첫 번째 해석 포인트입니다.
2. 옵티마이저 추정치
cost
,
rows
,
width
는 실행 전에 계산한 예상값
cost
시작 비용과 총 비용입니다.
절대 시간
이 아니라 여러 계획을 비교하기 위한
상대 지표
입니다.
rows
예상 반환 행 수입니다. 여기서는
1건을 찾을 것
이라고 판단한 상태입니다.
width
한 행의 예상 크기입니다. 결과가 커질수록 메모리와 전송 부담도 함께 커질 수 있습니다.
3. 실제 측정
Execution Time
은 실행 후에 얻는 진짜 시간
위 추정치는 계획 선택 근거이고,
0.05 ms
는 실제로 끝난 시간입니다. 둘을 함께 보면 옵티마이저의 예상이 대체로 맞았는지 판단할 수 있습니다.