perfmance schema는 storage engine 형태로 구현되어 있으나, 데이터를 저장하는 형태는 아님.

 

1. performance schema activate

   show variables like 'performance_schema';

   해당 기능이 on 되어 있지 않으면 my.cnf에 아래와 같이 설정

   

   [mysqld]

   performance_schema = ON

 

2. 성능 데이터 수집을 위해 아래와 같이 update 수행 ( 운영환경에 부하를 줄수 있음 )

   enable 기능 확인

   select * from performance_schema.setup_consumers;  (모니터링 테이블들 및 사용설정 확인)

   select * from performance_schema.setup_instruments;  (수집 지표별 사용설정 확인)

 

   성능 수집 항목 모두 enable

   update performance_schema.setup_consumers set enabled = 'YES';

   update performance_schema.setup_instruments set enabled = 'YES', timed = 'YES';

   

3. 사용

   위에 적용된 기능을 사용하여 full table scan 찾기

 

   SELECT DIGEST_TEXT AS query,

             IF(SUM_NO_GOOD_INDEX_USED > 0 OR SUM_NO_INDEX_USED > 0, '*', '') AS full_scan,

             COUNT_STAR AS exec_count,

             SUM_ERRORS AS err_count,

             SUM_WARNINGS AS warn_count,

             SEC_TO_TIME(SUM_TIMER_WAIT/1000000000000) AS exec_time_total

             SEC_TO_TIME(MAX_TIMER_WAIT/1000000000000) AS exec_time_max

             SEC_TO_TIME(AVG_TIMER_WAIT/1000000000000) AS exec_time_avg_ms, SUM_ROWS_SENT AS rows_sent,

             ROUND(SUM_ROWS_SENT / COUNT_STAR) AS rows_sent_avg, SUM_ROWS_EXAMINED AS rows_scanned,

             DIGEST AS digest

   FROM performance_schema.events_statements_summary_by_digest ORDER BY SUM_TIMER_WAIT DESC

'RDB > MySQL' 카테고리의 다른 글

mariadb binlog format  (0) 2020.02.10
mariadb innodb buffer pool dump/load  (0) 2020.02.10
mariadb 패스워드 인증  (0) 2020.01.14
mysql data dump 백업  (0) 2019.10.25
mysql metalock 관리  (0) 2019.10.14

+ Recent posts