1. SQL 실행 계획 확인
MySQL에서는 `EXPLAIN` 키워드를 사용하여 쿼리의 실행 계획을 확인할 수 있습니다. 이 명령은 쿼리가 실행될 때 데이터베이스가 어떤 인덱스를 사용하고, 각 단계에서 얼마나 많은 행을 처리할지를 보여줍니다.
EXPLAIN {QUERY};
이 명령을 실행하면, 테이블 스캔 방식, 사용된 인덱스, 처리된 행 수 등의 정보를 포함한 실행 계획이 출력됩니다.
2. 실제 실행 시간 측정
쿼리의 실제 실행 시간을 측정하려면, SQL 콘솔 또는 프로그래밍 언어에서 직접 쿼리를 실행하고 SHOW PROFILE를 사용하여 시간을 측정할 수 있습니다.
SET profiling = 1; -- 프로파일링 활성화
-- 쿼리 실행
{QUERY};
SHOW PROFILES; -- 모든 실행된 쿼리의 프로파일 목록을 보여줌
SHOW PROFILE FOR QUERY query_id; -- 특정 쿼리의 프로파일을 보여줌
3. GUI도구 이용
MySQL Workbench/ dbeaver와 같은 GUI 도구를 사용하면 쿼리 실행 계획과 실행 시간을 시각적으로 확인할 수 있습니다.
ex) dbeaver에서 윈도우 > showView > 쿼리관리자
4. 성능 스키마
MySQL의 성능 스키마(Performance Schema)를 사용하여 쿼리 성능을 모니터링할 수 있습니다. 성능 스키마는 다양한 쿼리 성능 관련 데이터를 수집하고 이를 분석하는 데 도움을 줍니다.
SELECT * FROM performance_schema.events_statements_summary_by_digest
ORDER BY SUM_TIMER_WAIT DESC
LIMIT 10;
5. 프로그래밍 언어 사용
프로그래밍 언어에서 쿼리 실행 시간을 측정하는 방법입니다.
예를 들어, Python에서 MySQL 쿼리 실행 시간을 측정할 수 있습니다.
import mysql.connector
import time
# 데이터베이스 연결 설정
conn = mysql.connector.connect(
host='hostname',
user='username',
password='password',
database='database_name'
)
cursor = conn.cursor()
# 쿼리 실행 시간 측정
start_time = time.time()
cursor.execute("""
{QUERY}
""")
conn.commit()
end_time = time.time()
print(f"Query execution time: {end_time - start_time} seconds")
# 커서와 연결 종료
cursor.close()
conn.close()
'SQL > RDBMS' 카테고리의 다른 글
[MariaDB] 외래키 생성/삭제 방법 (0) | 2024.11.30 |
---|---|
서브 쿼리 ORDER BY (0) | 2023.10.23 |
[MariaDB] RECURSIVE 계층 메뉴 구성 (0) | 2023.08.14 |
[MariaDB] 중복 파일명 처리(이름 뒤에 seq 붙이기) (0) | 2023.07.03 |
[MariaDB] 환경 구축 (생성, 삭제, 권한, 백업) (0) | 2023.04.25 |