이 글에서 공유하고 싶은 내용이 MySQL5.7에서는 새로 추가된 모니터링 항목의 대량 도입, 공간 및 부하 감소, 새로운 sys 스키마 메커니즘을 통해 성능 데이터를 표시합니다. 이 기사에서는 MySQL5.7의 성능 및 sys 스키마 모니터링 매개변수에 대한 설명을 소개합니다. 도움이 필요한 친구들이 참고할 수 있습니다.
1. 성능 스키마: 소개
MySQL5.7에서는 새로 추가된 모니터링 항목이 대거 도입되고, 공간 및 부하 감소, 사용 편의성이 대폭 향상되는 등 성능 스키마가 크게 개선되었습니다. 새로운 sys 스키마 메커니즘. 모니터링 측면에서 성능 스키마에는 다음과 같은 기능이 있습니다.
①: 메타데이터 잠금:
세션 간 메타데이터 잠금의 종속성을 이해하는 것이 중요합니다. MySQL 5.7.3부터 메타데이터 잠금 테이블을 통해 메타데이터 잠금에 대해 알아볼 수 있습니다.
--어떤 세션에 어떤 메타데이터 잠금이 있는지
--어떤 세션이 메타데이터 잠금을 기다리고 있는지
--교착 상태로 인해 차단된 요청은 무엇입니까? 또는 잠금이 시간 초과를 기다리고 취소됩니다.
②: 진행 상황 추적:
장기 작업(예: 테이블 변경)의 진행 상황을 추적합니다. MySQL 5.7.7부터 성능 스키마는 자동으로 명령문 진행 정보를 제공합니다. events_stages_current 테이블을 통해 현재 이벤트의 진행 정보를 볼 수 있습니다.
3: 트랜잭션:
서비스 계층 및 스토리지 엔진 계층 트랜잭션의 모든 측면을 모니터링합니다. MySQL 5.7.3부터 events_transactions_current 테이블이 추가되었으며, setup_consumers 및 setup_instruments 테이블을 통해 트랜잭션 모니터링을 활성화할 수 있으며, 이 테이블을 통해 현재 트랜잭션의 상태를 쿼리할 수 있습니다. 온라인 데이터베이스에서 실행 취소 로그가 크게 증가하고 데이터베이스 성능이 급격히 저하되는 경우 이 테이블을 사용하여 현재 커밋되지 않은 트랜잭션이 있는지 쿼리할 수 있습니다. 다수의 트랜잭션 상태가 활성화된 것으로 확인되면 데이터베이스에서 다수의 트랜잭션이 커밋되지 않은 것으로 판단할 수 있습니다.
4: 메모리 사용량:
이해하는 데 도움이 되는 메모리 사용량 정보 통계를 제공합니다. 서버의 메모리 소비를 조정합니다. MySQL 5.7.2부터 성능 스키마에는 계정, 액세스 호스트, 스레드, 사용자 및 이벤트 관점에서 메모리 사용 프로세스를 계산하는 메모리 관련 통계 정보가 추가되었습니다.
⑤: 저장 프로시저:
저장 프로시저, 메소드, 이벤트 디스패처 및 테이블 트리거를 위한 스토리지 감지기입니다. MySQL5.7의 setup_objects 테이블에는 이벤트, 함수, 프로시저 및 트리거에 대한 새로운 감지기가 추가되었습니다. 성능 스키마는 테이블에서 object_schema 및 object_name과 일치하는 개체를 검색하는 데 사용됩니다.
2. sys 스키마 소개:
MySQL5.7의 새로운 sys 스키마. 일련의 객체(뷰, 저장 프로시저, 저장 메소드, 테이블, 트리거)로 구성된 스키마입니다. 자체적으로 정보를 수집하고 저장하지는 않지만,performance_schema 및 information_schema에 있는 데이터를 보다 이해하기 쉬운 방식으로 요약합니다. 보다".
---sys 스키마는 일반적인 튜닝 및 진단 사용 사례에 사용할 수 있습니다. 이러한 개체에는 다음 세 가지가 포함됩니다.
①: 성능 패턴 데이터를 보다 이해하기 쉬운 보기로 요약합니다.
②: 성능 패턴 구성 및 생성 등. 진단 보고서 등의 작업을 위한 저장 프로시저
3: 성능 스키마 구성을 쿼리하고 포맷팅 서비스를 제공하는 데 사용되는 저장 함수
---쿼리에서 sys 스키마의 기능, 데이터베이스 서비스 리소스의 사용량을 확인할 수 있나요? 데이터베이스 서버에 가장 많이 액세스하는 호스트는 무엇입니까? 인스턴스의 메모리 사용량?
3. sys 스키마의 테이블 분류:
①: 호스트 관련 정보:
host_summary로 시작하는 뷰는 주로 IO 지연 정보를 요약하고 호스트, 파일 이벤트 유형, 명령문 유형 등의 관점에서 파일 IO를 표시합니다. 정보
②: innodb 관련 정보:
innodb로 시작하는 뷰는 innodb 버퍼 페이지 정보와 트랜잭션 대기 innodb 잠금 정보를 요약합니다.
3: IO 사용법:
IO로 시작하는 뷰는 다음을 포함하여 IO 사용자 정보를 요약합니다. IO 및 IO 사용량을 기다리는 모습을 다양한 각도에서 그룹별로 표시합니다.
4: 메모리 사용량:
호스트, 스레드, 사용자 및 이벤트 관점에서 메모리를 표시하는 보기
⑤: 연결; 및 세션 정보:
그중 processlist 및 세션 관련 뷰는 세션 관련 정보를 요약합니다.
⑥ 테이블 관련 정보:
전체 테이블에서 전체 테이블을 검색하는 Schema_table로 시작하는 뷰, innodb 버퍼 풀 및 기타 측면은 테이블을 표시합니다. 통계 정보
7: 인덱스 정보:
인덱스 사용량, 중복 인덱스 및 사용되지 않은 인덱스를 계산하는 인덱스 뷰가 포함됩니다. 오류 수, 경고 수, 전체 테이블 스캔 실행, 임시 테이블 사용, 정렬 실행 및 기타 정보를 포함한 정규화된 문 사용
9: 사용자 관련 정보: 사용자로 시작하는 보기는 사용된 파일 IO를 계산합니다. 사용자별, 실행된 명령문 통계 등
9: 대기 이벤트 관련 정보
wait로 시작하는 뷰는 호스트 및 이벤트 관점에서 대기 이벤트의 지연을 보여줍니다.
4. Sys 스키마 사용 예:
---查看表的访问量:(可以监控每张表访问量的情况,或者监控某个库的访问量的变化) select table_schema,table_name,sum(io_read_requests+io_write_requests) from schema_table_statistics; select table_schema,table_name,io_read_requests+io_write_requests as io_total from schema_table_statistics; ---冗余索引和未使用索引的检查:(schema_redundant_indexes和schema_unused_indexes查看索引的情况) select * from sys.schema_redundant_indexes\G select * from sys.schema_unused_indexes; (如果有冗余索引和长期未使用的索引,应该及时清理,) ---查看表自增ID使用情况: select * from schema_auto_increment_columns\G (可以使用schema_auto_increment_columns视图,就能很简单的查到每个表的自增量使用情况,甚至可以精确到某个表的自增量情况) ---监控全表扫描的sql语句: select * from sys.statements_with_full_table_scans where db='test2'\G (使用statements_with_full_table_scans视图可以查看哪些表查询使用了全表扫描,其中exec_count是执行的次数,等信息) ---查看实例消耗的磁盘I/O情况:() select file,avg_read+avg_write as avg_io from io_global_by_file_by_bytes order by avg_io desc limit 10; (查看io_global_by_file_by_bytes视图可以检查磁盘I/O消耗过大的原因,定位问题)
관련 권장 사항:
자동 모니터링 및 동기화를 구현하는 mysql 스크립트
Mysql innodb 모니터링(시스템 계층, 데이터베이스 계층) 예제 코드 상세 설명
위 내용은 MySQL5.7의 성능 및 sys 스키마 모니터링 매개변수에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!