Query 성능 측정하기
Query 성능을 측정하는 방법 중 소요 시간을 확인하는 것과 코드 실행 횟수를 측정하는 방식이 존재한다.
이때, SQL에서 자체적으로 소요 시간 및 코드 실행횟수를 알려주는 명령어가 존재한다.
Profile
MySQL(or MariaDB)에서 쿼리가 처리되는 동안 각 단계별 작업에 시간이 얼마나 걸리는지 확인할 수 있는 기능을 제공합니다.
(단, Query Profiling은 MySQL 5.1 이상 버젼에서만 제공하고 있다.)
set profiling = 1;
일단 Profile을 사용하기 위해서 profiling을 사용한다는 명령어를 실행해야 한다.
그 후에 하나의 쿼리를 실행한 후, 다음 명령어를 통해 실행 시간을 정확하게 확인해보자.
show profiles;
만약 하나의 쿼리문이 어떻게 작동했는지 보고 싶다면 QueryID를 활용해서 확인할 수 있다.
show profile for query [QueryID];
Explain
Explain은 MySQL(MariaDB)에서 실행 계획을 알려주는 SQL 문법이다.
explain [Query 내용 작성]
위처럼 SQL을 작성하고 실행하면 다음 사진처럼 나온다.
- id : Query의 고유 Id
- select_type : 쿼리 타입 (simple, primary, subquery 등)
- table : 접근하는 테이블
- type : 조인 방식
- possible_keys : 사용 가능한 인덱스 목록
- key : 사용한 인덱스
- key_len : 사용된 인덱스 길이
- ref : 어떤 속성을 기준으로 인덱스가 사용되었는지 표시
- rows : 예상 스캔 행의 수
- Extra : 각종 조건문이 사용되는지 여부를 나타낸다.
참고 자료
https://peterica.tistory.com/177
[Mysql] 쿼리튜닝, Query Profiling
ㅁ 개요 ㅇ mysql의 성능향상을 위한 구체적인 지표를 얻을 수 있는 방법을 찾고 있었다. ㅇ profiling을 통해 디비 프로세스의 다양한 성능지표를 확인하여 쿼리 성능을 확인할 수 있다. ㅁ Mysql 버
peterica.tistory.com
MySQL 실행계획(explain) 정리
MySQL 실행계획 정리 쿼리 튜닝 검토 전, 실행계획(explain)을 보고 실행할 SQL이 DB에서 어떻게 처리될지 파악할 수 있습니다. MySQL 튜닝에서 가장 중요한 것은 쿼리와 스키마 설계인데, 스키마 설계
0soo.tistory.com
https://twinparadox.tistory.com/631
MySQL(MariaDB)의 EXPLAIN으로 실행 결과 분석하기
실행 계획이라고 하면, 쿼리가 어떻게 데이터를 불러오는지에 대한 계획을 의미한다. 실행 계획을 통해서 어떤 테이블이 어떤 방식으로 조회됐는지 확인할 수 있다. 조회 쿼리의 인덱스 사용 유
twinparadox.tistory.com
혹시라도 틀린 내용이 있다면 댓글로 알려주시면 감사하겠습니다!!
'CS(Computer Science) > Database' 카테고리의 다른 글
[Database] Database 프로젝트 성능 개선 트러블슈팅 (0) | 2025.06.21 |
---|---|
[Database] SQL 총 정리 2탄 (0) | 2025.06.21 |
[Database] 클러스터링(Clustering) 구축 (0) | 2025.06.13 |
[Database] 리플리케이션(Replication)에서 핫 사이트(Hot Site) 구현(KeepAlived + MariaDB) (0) | 2025.06.12 |
[Database] 리플리케이션(Replication)에서 미러 사이트(Mirror Site) 구현(Haproxy + MariaDB) (1) | 2025.06.12 |