728x90
반응형
1. 핵심 원리
- JetBrains 제품(DataGrip, IntelliJ DB 툴)은 자체적으로 COST를 계산하지 않음.
- DBMS의 실행 계획(Execution Plan) 결과를 불러와서 표시하는 방식.
- 따라서 EXPLAIN / EXPLAIN ANALYZE 명령어를 DB에 실행해야 COST 확인 가능.
2. IntelliJ / DataGrip 사용법
- SQL 콘솔 열기 → 쿼리 입력
- 쿼리 선택 후:
- Ctrl + Alt + Shift + U (Mac: ⌥⌘⇧U) → Explain Plan 실행
- 결과 확인:
- Execution Plan 탭이 하단에 열림
- Diagram 모드 → 노드별 COST 시각화
- Text 모드 → DB 원본 EXPLAIN 결과 확인
3. DBMS별 예시
🔹 MySQL 예시
-- 기본 실행 계획 확인
EXPLAIN SELECT * FROM users WHERE id = 10;
-- JSON 형식 실행 계획 (MySQL 8 이상)
EXPLAIN FORMAT=JSON SELECT * FROM users WHERE id = 10;
결과(JSON 일부 예시):
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.20"
},
"table": {
"table_name": "users",
"access_type": "const",
"rows_examined_per_scan": 1,
"rows_produced_per_join": 1,
"filtered": "100.00"
}
}
👉 "query_cost": "1.20" 이 SQL 실행 비용.
🔹 PostgreSQL 예시
-- 단순 실행 계획 (예상 비용만 표시)
EXPLAIN SELECT * FROM users WHERE id = 10;
-- 실제 실행 + 비용, 실행시간, 버퍼까지 표시
EXPLAIN (ANALYZE, BUFFERS, COSTS) SELECT * FROM users WHERE id = 10;
결과 예시:
Index Scan using users_pkey on users (cost=0.29..8.30 rows=1 width=52) (actual time=0.018..0.020 rows=1 loops=1)
Index Cond: (id = 10)
Planning Time: 0.078 ms
Execution Time: 0.046 ms
👉 (cost=0.29..8.30) → 시작 비용 / 전체 비용
👉 (actual time=0.018..0.020) → 실제 실행 시간
4. 실무 정리
- MySQL: EXPLAIN FORMAT=JSON 으로 COST 확인 (query_cost)
- PostgreSQL: EXPLAIN (ANALYZE, COSTS) 로 예상 + 실제 비용 확인
- IntelliJ / DataGrip:
- 단축키 Ctrl + Alt + Shift + U → Execution Plan
- 하단 Execution Plan 탭에서 COST 확인 가능
✅ 결론
- JetBrains IDE는 DB에서 제공하는 실행 계획을 그대로 보여줌.
- 정확한 SQL 성능 최적화는 인덱스 사용 여부, rows, COST 값을 함께 분석해야 함.
728x90
반응형
'DB > mysql' 카테고리의 다른 글
| MariaDB/MySQL 계열 모든 테이블 삭제 쿼리 (0) | 2026.03.10 |
|---|---|
| 컬럼 이름 수정 방법 (0) | 2025.10.17 |
| 📌 LEFT JOIN 동작 원리 쉽게 이해하기 (0) | 2025.09.04 |
| 📌 MySQL 메타데이터 락 문제 정리 (0) | 2025.09.04 |