MySQL 의 Query Profiler 사용

10200 단어 mysqlprofile
MySQL 의 Query Profiler 는 매우 편리 한 Query 진단 분석 도 구 를 사용 하여 이 도 구 를 통 해 CPU,IO,IPC,SWAP 등 과 발생 하 는 PAGE FAULTS,CONTEXT SWITCHE 등 전체 실행 과정 에서 다양한 자원 의 소모 상황 을 얻 을 수 있 습 니 다.또한 이 Query 실행 과정 에서 MySQL 이 호출 한 각 함수 가 원본 파일 에 있 는 위 치 를 얻 을 수 있 습 니 다.다음은 Query Profiler 의 구체 적 인 용법 을 살 펴 보 겠 습 니 다.
  우선 현재 my sql 에서 proleer 가 열 렸 는 지 확인 할 수 있 습 니 다.

  
  
  
  
  1. mysql> SELECT @@profiling; 
  2. +-------------+ | @@profiling | +-------------+ | 0 | +-------------+ 1 row in set (0.00 sec)

   프로필 러 열기:

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

    Query Profiler 기능 을 켜 면 MySQL 은 실행 중인 모든 Query 의 profile 정 보 를 자동 으로 기록 합 니 다.다음 쿼 리 실행:
  

  
  
  
  
  1. mysql> select count(*) from order_items; 
  2. +----------+ 
  3. count(*) | 
  4. +----------+ 
  5. |   154258 | 
  6. +----------+ 
  7. 1 row in set (0.62 sec) 
  8.  
  9. mysql> show profiles; 
  10. +----------+------------+------------------------------------+ 
  11. | Query_ID | Duration   | Query                              | 
  12. +----------+------------+------------------------------------+ 
  13. |        1 | 0.04020500 | select * from orders where id=2090 | 
  14. |        2 | 0.02056800 | select count(*) from t1 | 
  15. |        3 | 0.00059800 | select count(*) from t1 | 
  16. |        4 | 0.00036700 | ser profiler=0                     | 
  17. |        5 | 0.00053300 | select @@profiling                 | 
  18. |        6 | 0.62734100 | select count(*) from order_items   | 
  19. +----------+------------+------------------------------------+ 
  20. rows in set (0.00 sec) 

개요 정 보 를 가 져 오 면 개요 정보 에 있 는 QueryID 는 어떤 Query 가 실행 하 는 과정 에서 상세 한 profflee 정 보 를 가 져 옵 니 다.CPU 와 IO 소 모 를 보 려 면 다음 과 같이 구체 적 으로 조작 하 십시오.

  
  
  
  
  1. mysql> show profile cpu, block io for query 6; 
  2. +----------------------+----------+----------+------------+--------------+---------------+ 
  3. | Status               | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out | 
  4. +----------------------+----------+----------+------------+--------------+---------------+ 
  5. | starting             | 0.000064 | 0.000000 |   0.000000 |            0 |             0 | 
  6. | checking permissions | 0.000015 | 0.000000 |   0.000000 |            0 |             0 | 
  7. | Opening tables       | 0.390653 | 0.000000 |   0.000000 |            0 |             0 | 
  8. | System lock          | 0.000028 | 0.000000 |   0.000000 |            0 |             0 | 
  9. | init                 | 0.000019 | 0.000000 |   0.000000 |            0 |             0 | 
  10. | optimizing           | 0.000010 | 0.000000 |   0.000000 |            0 |             0 | 
  11. statistics           | 0.000017 | 0.000000 |   0.000000 |            0 |             0 | 
  12. | preparing            | 0.000015 | 0.000000 |   0.000000 |            0 |             0 | 
  13. | executing            | 0.000011 | 0.000000 |   0.000000 |            0 |             0 | 
  14. | Sending data         | 0.235932 | 0.036002 |   0.000000 |            0 |             0 | 
  15. end                  | 0.000018 | 0.000000 |   0.000000 |            0 |             0 | 
  16. | query end            | 0.000018 | 0.000000 |   0.000000 |            0 |             0 | 
  17. | closing tables       | 0.000023 | 0.000000 |   0.000000 |            0 |             0 | 
  18. | freeing items        | 0.000500 | 0.000000 |   0.000000 |            0 |             0 | 
  19. | logging slow query   | 0.000009 | 0.000000 |   0.000000 |            0 |             0 | 
  20. | cleaning up          | 0.000009 | 0.000000 |   0.000000 |            0 |             0 | 
  21. +----------------------+----------+----------+------------+--------------+---------------+ 
  22. 16 rows in set (0.03 sec) 
show profile :
 

  
  
  
  
  1. SHOW PROFILE [type [, type] ... ] 
  2.     [FOR QUERY n] 
  3.     [LIMIT row_count [OFFSET offset]] 
  4. type: 
  5.     ALL 
  6.   | BLOCK IO 
  7.   | CONTEXT SWITCHES 
  8.   | CPU 
  9.   | IPC 
  10.   | MEMORY 
  11.   | PAGE FAULTS 
  12.   | SOURCE 
  13.   | SWAPS 

Optional type values may be specified to display specific additional types of information:
  • ALL displays all information
  • BLOCK IO displays counts for block input and output operations
  • CONTEXT SWITCHES displays counts for voluntary and involuntary context switches
  • CPU displays user and system CPU usage times
  • IPC displays counts for messages sent and received
  • MEMORY is not currently implemented
  • PAGE FAULTS displays counts for major and minor page faults
  • SOURCE displays the names of functions from the source code, together with the name and line number of the file in which the function occurs
  • SWAPS displays swap counts

  • 메모:Profiling 은 하나의 session 만 을 대상 으로 합 니 다.session 이 끝나 면 profiling 정 보 를 잃 어 버 립 니 다!
    4.567914.
    다음 두 문장의 출력 결 과 는 일치 합 니 다.
    
      
      
      
      
    1. mysql>SHOW PROFILE FOR QUERY 6; 
    2.  
    3. mysql>SELECT STATE, FORMAT(DURATION, 6) AS DURATION 
      FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID = 6 ORDER BY SEQ; 
    4.   INFORMATION_SCHEMA profiling profiling ,

    좋은 웹페이지 즐겨찾기