📌 IntelliJ / DataGrip 에서 SQL 실행 비용(COST) 확인 방법 정리

2025. 9. 4. 18:53·DB/mysql
728x90
반응형

 

1. 핵심 원리

  • JetBrains 제품(DataGrip, IntelliJ DB 툴)은 자체적으로 COST를 계산하지 않음.
  • DBMS의 실행 계획(Execution Plan) 결과를 불러와서 표시하는 방식.
  • 따라서 EXPLAIN / EXPLAIN ANALYZE 명령어를 DB에 실행해야 COST 확인 가능.

2. IntelliJ / DataGrip 사용법

  1. SQL 콘솔 열기 → 쿼리 입력
  2. 쿼리 선택 후:
    • Ctrl + Alt + Shift + U (Mac: ⌥⌘⇧U) → Explain Plan 실행
  3. 결과 확인:
    • 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
'DB/mysql' 카테고리의 다른 글
  • MariaDB/MySQL 계열 모든 테이블 삭제 쿼리
  • 컬럼 이름 수정 방법
  • 📌 LEFT JOIN 동작 원리 쉽게 이해하기
  • 📌 MySQL 메타데이터 락 문제 정리
nix-be
nix-be
  • nix-be
    NiX
    nix-be
  • 전체
    오늘
    어제
    • 홈
      • 책
        • 오브젝트
      • 성장
        • jpa Querydsl 정리
        • 코딩테스트
        • 스프링 핵심 원리 - 기본편
      • 인프라
        • linux
        • vmware
        • CI&CD
        • 네트워크
        • docker
      • 개발
        • spring boot
        • spring security
        • JPA
        • java
        • thymeleaf
        • 이슈
        • jquery
        • javascript
        • 안드로이드
        • MyBatis
        • git
        • 과제
      • DB
        • postgreSql
        • mysql
        • redis
      • 잡다한것
        • 프로그램
        • 일상 관련
        • 프로젝트-주차관리
      • 회사
        • 티
        • 피
  • 블로그 메뉴

    • 홈
    • 개발
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
nix-be
📌 IntelliJ / DataGrip 에서 SQL 실행 비용(COST) 확인 방법 정리
상단으로

티스토리툴바