프로파일링(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)를 사용하는 것이 권장됩니다. 다만 간단하게 쿼리 소요 시간을 확인할 때는 여전히 유용하게 활용할 수 있습니다.