Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 실제 쿼리 실행 시간을 측정하는 방법

프로파일링(Profiling)을 활용한 쿼리 시간 측정

MySQL에서 쿼리가 실제로 걸린 시간을 정확히 확인하려면 프로파일링(profiling) 기능을 사용할 수 있습니다. 이 기능은 기본적으로 비활성화되어 있으므로, 쿼리를 실행하기 전에 반드시 profiling 값을 1로 설정해야 합니다.

측정 절차

쿼리 실행 시간을 측정하는 순서는 다음과 같습니다.

1. SET profiling = 1 (프로파일링 활성화)
2. 쿼리 실행
3. SHOW PROFILES (결과 확인)

실습 예제

위 순서를 그대로 적용해 보겠습니다. 먼저 프로파일링을 활성화합니다.

mysql> SET profiling = 1;
Query OK, 0 rows affected, 1 warning (0.00 sec)

다음으로 측정하고 싶은 쿼리를 실행합니다.

mysql> SELECT * FROM MilliSecondDemo;

실행 결과는 다음과 같습니다.

+-------------------------+
| MyTimeInMillSec         |
+-------------------------+
| 2018-10-08 15:19:50.202 |
+-------------------------+
1 row in set (0.00 sec)

클라이언트에 표시되는 '0.00 sec'는 반올림된 값이므로 실제 소요 시간을 알기 어렵습니다. 이때 아래 쿼리를 실행하면 보다 정밀한 시간을 확인할 수 있습니다.

SHOW PROFILES로 실제 소요 시간 확인

mysql> SHOW PROFILES;

실행 결과는 다음과 같습니다.

+----------+------------+-------------------------------+
| Query_ID | Duration   | Query                         |
+----------+------------+-------------------------------+
| 1        | 0.00051725 | SELECT * from MilliSecondDemo |
+----------+------------+-------------------------------+
1 row in set, 1 warning (0.00 sec)

Duration 열에 표시된 값이 해당 쿼리의 실제 실행 시간입니다. 위 예제에서는 약 0.00051725초, 즉 약 0.52밀리초가 걸렸음을 알 수 있습니다.

참고 사항

profiling 기능은 MySQL 5.6.7 버전부터 공식적으로 지원 중단(deprecated)되었으며, 최신 버전에서는 Performance Schema(performance_schema)를 사용하는 것이 권장됩니다. 다만 간단하게 쿼리 소요 시간을 확인할 때는 여전히 유용하게 활용할 수 있습니다.