이를 확인하려면 현재 세션이 진행되는 동안 실행된 명령문에 대한 리소스 사용량을 나타내는 프로파일링 정보가 필요합니다. 프로파일링 정보는 SHOW PROFILE로 얻을 수 있습니다. 및 프로필 표시 성명서.
이 명령문을 실행하기 전에 프로파일링 세션 변수를 다음과 같이 1로 설정해야 합니다. -
mysql> set profiling = 1; Query OK, 0 rows affected (0.00 sec)
이제 SHOW PROFILES를 실행하면 명령문을 실행하면 기간 및 쿼리 ID와 함께 서버로 전송된 가장 최근 명령문 목록이 표시됩니다.
mysql> show profiles; +----------+------------+--------------------------------------+ | Query_ID | Duration | Query | +----------+------------+--------------------------------------+ | 1 | 0.01602200 | drop table if exists t1 | | 2 | 0.57223450 | create table t1(id int) | | 3 | 0.00015425 | show profile for query1 | | 4 | 0.22945050 | create table e1(id int) | | 5 | 0.09977025 | insert into e1(id) values(3),(4),(5) | +----------+------------+--------------------------------------+ 5 rows in set (0.00 sec)
이제 특정 쿼리의 기간을 확인하려는 경우 SHOW PROFILE을 실행할 수 있습니다. query query_no의 경우 성명. 예를 들어 query_id =5에 대한 명령문을 실행하면 다음과 같은 결과가 출력됩니다. -
mysql> show profile for query 5; +------------------------------+--------------+ | Status | Duration | +------------------------------+--------------+ | starting | 0.000138 | | checking permissions | 0.000024 | | Opening tables | 0.000057 | | System lock | 0.035186 | | init | 0.000035 | | update | 0.021484 | | Waiting for query cache lock | 0.000021 | | update | 0.000005 | | end | 0.000024 | | query end | 0.042700 | | closing tables | 0.000017 | | freeing items | 0.000076 | | logging slow query | 0.000003 | | cleaning up | 0.000002 | +------------------------------+--------------+ 14 rows in set (0.00 sec)