세션 상태 초기화
FLUSH STATUS;
세션 상태 변경 조회
각종 핸들러의 상태 변화 확인
SHOW STATUS LIKE ‘%handler%’;
Row update 확인
SHOW STATUS LIKE ‘Innodb_rows_updated’;
MySQL Performance Schema
table_io_waits_summary_by_table
최근 수행중인 질의들에서 wait/io/table/sql/handler 가 질의 성능에 크게 영향을 주기 시작했다.
Mysql에는 wait 상태와 관련된 여러 대기 로드들이 있는데, 그중 io/table/sql/handler는 데이터베이스에서 질의 처리 중 발생하는 입출력 작업 (I/O: input/output)이 집중되거나 입출력 성능이 질의 처리 성능을 따라가지 못할 때 발생하는 것으로 알고 있다.
여기서 입출력 작업이란 디스크 읽기/쓰기 등의 작업을 포함한다.
table_io_waits_summary_by_table은 wait/io/tablesql/handler에서 생성된 모든 테이블 I/O wait 이벤트가 기록되어 있다.
SELECT * FROM performance_schema.table_io_waits_summary_by_table;
특정한 table에 대한 I/O event를 조회하려 한다면 WHERE 구문을 활용한다
SELECT * FROM performance_schema.table_io_waits_summary_by_table WHERE OBJECT_NAME = '<table_name>';
질의 결과를 보면 column이 상당히 많은데, 다음과 같이 끊어서 보면 이해가 편하다
COUNT_STAR
, SUM_TIMER_WAIT
, MIN_TIMER_WAIT
, AVG_TIMER_WAIT
, MAX_TIMER_WAIT