이 뷰를 사용하여 초당, 분, 시간 및 일당 쿼리 수를 감시합니다.
create or replace view _dba_query_stats as
select
SUBSTRING(VARIABLE_NAME, 5) as query_type,
VARIABLE_VALUE as total_count,
round(VARIABLE_VALUE / ( select VARIABLE_VALUE from information_schema.GLOBAL_STATUS where VARIABLE_NAME = 'Uptime_since_flush_status'), 2) as per_second,
round(VARIABLE_VALUE / ((select VARIABLE_VALUE from information_schema.GLOBAL_STATUS where VARIABLE_NAME = 'Uptime_since_flush_status') / (60))) as per_minute,
round(VARIABLE_VALUE / ((select VARIABLE_VALUE from information_schema.GLOBAL_STATUS where VARIABLE_NAME = 'Uptime_since_flush_status') / (60*60))) as per_hour,
round(VARIABLE_VALUE / ((select VARIABLE_VALUE from information_schema.GLOBAL_STATUS where VARIABLE_NAME = 'Uptime_since_flush_status') / (60*60*24))) as per_day,
FROM_UNIXTIME(round(UNIX_TIMESTAMP(sysdate()) - (select VARIABLE_VALUE from information_schema.GLOBAL_STATUS where VARIABLE_NAME = 'Uptime_since_flush_status'))) report_period_start,
sysdate() as report_period_end,
TIME_FORMAT(SEC_TO_TIME((select VARIABLE_VALUE from information_schema.GLOBAL_STATUS where VARIABLE_NAME = 'Uptime_since_flush_status')),'%Hh %im') as report_period_duration
from
information_schema.GLOBAL_STATUS
where
VARIABLE_NAME in ('Com_select', 'Com_delete', 'Com_update', 'Com_insert');
샘플 출력 :
query_type total_count per_second per_minute per_hour per_day report_period_start report_period_end report_period_duration
DELETE 0 0 0 0 0 2017-04-16 03:46 2017-04-20 22:14:56 114h 28m
INSERT 36595 0.09 5 320 7672 2017-04-16 03:46 2017-04-20 22:14:56 114h 28m
SELECT 14842019 36.02 2161 129656 3111738 2017-04-16 03:46 2017-04-20 22:14:56 114h 28m
UPDATE 189137 0.46 28 1652 39654 2017-04-16 03:46 2017-04-20 22:14:56 114h 28m
Queries글로벌 상태 변수였다 서버가 마지막으로 시작된 이후 모든 ... 세고SHOW STATUS LIKE 'Uptime';초 전. 많은 상태 변수가 지워FLUSH STATUS;졌지만Queries적어도 지금 테스트 한 서버에서는 MySQL 5.5.19 및 5.6.14였습니다.