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

MySQL 쿼리 실행 결과로 서버 성능을 파악하는 방법

MySQL에서 쿼리를 실행하면 단순히 결과만 반환되는 것이 아니라, 영향을 받은 행(row)의 개수쿼리 실행에 걸린 시간도 함께 출력됩니다. 이 두 가지 정보를 잘 활용하면 쿼리의 효율성과 서버의 전반적인 성능을 간접적으로 파악할 수 있습니다.

실행 예시

다음과 같이 간단한 테이블 생성 쿼리를 실행해 보겠습니다.

mysql> create table e1(id int);
Query OK, 0 rows affected (0.23 sec)

출력 결과 해석하기

위 출력 결과는 세 부분으로 나누어 해석할 수 있습니다.

  • Query OK: 쿼리가 오류 없이 성공적으로 실행되었음을 의미합니다.
  • 0 rows affected: 이 쿼리로 인해 실제로 변경된 데이터 행의 수입니다. CREATE TABLE은 새 테이블 구조만 생성하므로 기존 데이터에 영향을 주는 행이 없어 0으로 표시됩니다.
  • (0.23 sec): 쿼리 실행에 소요된 시간입니다.

실행 시간으로 성능 판단하기

여기서 핵심은 (0.23 sec)이라는 실행 시간입니다. 동일한 쿼리를 반복 실행하면서 이 시간을 비교하면 다음과 같은 성능 지표를 얻을 수 있습니다.

  • 실행 시간이 평소보다 크게 증가한다면 서버 부하, 락(lock) 대기, 디스크 I/O 병목 등의 문제를 의심해볼 수 있습니다.
  • SELECT 같은 조회 쿼리에서 시간이 오래 걸린다면 인덱스 부재나 비효율적인 쿼리 작성이 원인일 가능성이 높습니다.

물론 단순 실행 시간만으로 정확한 성능 진단을 하기는 어렵습니다. 보다 정밀한 분석이 필요하다면 EXPLAIN, SHOW PROFILE, 슬로우 쿼리 로그(slow query log) 등의 도구를 함께 활용하는 것이 좋습니다. 그럼에도 불구하고 쿼리 출력에 표시되는 실행 시간은 가장 빠르고 손쉽게 서버 상태를 점검할 수 있는 첫 번째 지표라 할 수 있습니다.