MySQL5.7新增Performance Schema表
在前面有几篇博客我们已经介绍过MySQL5.6的Performance Schema,详细可点击博客1,博客2,博客3。在MySQL5.6里这些PS表已经包含了足够丰富的信息,帮助我们来分析MySQL的内部运行状态;另外由MySQL官方开发人员写的ps_helper是一组相当好用的ps配套工具,就算对Performance Schema不熟悉的同学,也能读懂其中的信息,感兴趣的同学可以自行谷歌下载。
1.内存监控(MySQL5.7.2)
root@performance_schema 07:33:59>select count(*) from setup_instruments where name like ‘%memory%';
+———-+
| count(*) |
+———-+
| 211 |
+———-+
1 row in set (0.00 sec)
root@performance_schema 07:46:39>show tables like ‘%memory%';
+—————————————–+
| Tables_in_performance_schema (%memory%) |
+—————————————–+
| memory_summary_by_account_by_event_name |
| memory_summary_by_host_by_event_name |
| memory_summary_by_thread_by_event_name |
| memory_summary_by_user_by_event_name |
| memory_summary_global_by_event_name |
+—————————————–+
5 rows in set (0.00 sec)
memory_summary_by_account_by_event_name
memory_summary_by_host_by_event_name
memory_summary_by_thread_by_event_name
memory_summary_by_user_by_event_name
memory_summary_global_by_event_name
root@performance_schema 09:49:49>select * from memory_summary_global_by_event_name order by COUNT_ALLOC desc limit 4\G
*************************** 1. row ***************************
EVENT_NAME: memory/sql/Log_event
COUNT_ALLOC: 1099049
COUNT_FREE: 1099044
SUM_NUMBER_OF_BYTES_ALLOC: 460773085
SUM_NUMBER_OF_BYTES_FREE: 460772560
LOW_COUNT_USED: 3
CURRENT_COUNT_USED: 5
HIGH_COUNT_USED: 203
LOW_NUMBER_OF_BYTES_USED: 505
CURRENT_NUMBER_OF_BYTES_USED: 525
HIGH_NUMBER_OF_BYTES_USED: 166205
*************************** 2. row ***************************
EVENT_NAME: memory/sql/Sid_map::Node
COUNT_ALLOC: 547325
COUNT_FREE: 547303
SUM_NUMBER_OF_BYTES_ALLOC: 8757204
SUM_NUMBER_OF_BYTES_FREE: 8756848
LOW_COUNT_USED: -36483
CURRENT_COUNT_USED: 22
HIGH_COUNT_USED: 36941
LOW_NUMBER_OF_BYTES_USED: -583724
CURRENT_NUMBER_OF_BYTES_USED: 356
HIGH_NUMBER_OF_BYTES_USED: 591060
*************************** 3. row ***************************
EVENT_NAME: memory/sql/MYSQL_LOCK
COUNT_ALLOC: 274928
COUNT_FREE: 274827
SUM_NUMBER_OF_BYTES_ALLOC: 13196544
SUM_NUMBER_OF_BYTES_FREE: 13191696
LOW_COUNT_USED: 0
CURRENT_COUNT_USED: 101
HIGH_COUNT_USED: 101
LOW_NUMBER_OF_BYTES_USED: 0
CURRENT_NUMBER_OF_BYTES_USED: 4848
HIGH_NUMBER_OF_BYTES_USED: 4848
*************************** 4. row ***************************
EVENT_NAME: memory/sql/my_bitmap_map
COUNT_ALLOC: 274807
COUNT_FREE: 274799
SUM_NUMBER_OF_BYTES_ALLOC: 1099228
SUM_NUMBER_OF_BYTES_FREE: 1099196
LOW_COUNT_USED: 0
CURRENT_COUNT_USED: 8
HIGH_COUNT_USED: 100
LOW_NUMBER_OF_BYTES_USED: 0
CURRENT_NUMBER_OF_BYTES_USED: 32
HIGH_NUMBER_OF_BYTES_USED: 400
4 rows in set (0.01 sec)
2.Performance Schema开始支持存储过程,存储函数,触发器以及事件调度器(MySQL5.7.2)
NESTING_LEVEL
来表示嵌套层次
events_statements_summary_by_program
来聚合上述集中类型的统计信息
3.复制信息表(MySQL5.7.2)
root@performance_schema 10:48:10>show tables like ‘replication%';
+———————————————+
| Tables_in_performance_schema (replication%) |
+———————————————+
| replication_connection_configuration |
| replication_connection_status |
| replication_execute_configuration |
| replication_execute_status |
| replication_execute_status_by_coordinator |
| replication_execute_status_by_worker |
+———————————————+
6 rows in set (0.00 sec)
replication_connection_configuration :
root@performance_schema 10:50:02>select * from replication_connection_configuration\G
*************************** 1. row ***************************
HOST: 10.238.88.35
PORT: 13316
USER: xx
NETWORK_INTERFACE:
AUTO_POSITION: 0
SSL_ALLOWED: NO
SSL_CA_FILE:
SSL_CA_PATH:
SSL_CERTIFICATE:
SSL_CIPHER:
SSL_KEY:
SSL_VERIFY_SERVER_CERTIFICATE: NO
SSL_CRL_FILE:
SSL_CRL_PATH:
CONNECTION_RETRY_INTERVAL: 60
CONNECTION_RETRY_COUNT: 86400
1 row in set (0.00 sec)
replication_connection_status
root@performance_schema 10:50:32>select * from replication_connection_status\G
*************************** 1. row ***************************
SOURCE_UUID: 5f8b0702-5b00-11e3-9443-90b11c540089
THREAD_ID: NULL
SERVICE_STATE: OFF
RECEIVED_TRANSACTION_SET:
LAST_ERROR_NUMBER: 2003
LAST_ERROR_MESSAGE: error connecting to master ‘xx@10.238.88.35:13316′ – retry-time: 60 retries: 151
LAST_ERROR_TIMESTAMP: 2013-12-28 21:50:48
1 row in set (0.00 sec)
replication_execute_configuration
:当前是否配置了delay复制
replication_execute_status 上表对应的状态信息;
replication_execute_status_by_coordinator
:用于展示分发线程的状态信息
mysql> select * from replication_execute_status_by_coordinator\G
*************************** 1. row ***************************
THREAD_ID: 50
SERVICE_STATE: ON
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
1 row in set (0.00 sec)
replication_execute_status_by_worker :当前所有worker线程的工作状态
mysql> select * from replication_execute_status_by_worker\G
*************************** 1. row ***************************
WORKER_ID: 1
THREAD_ID: 51
SERVICE_STATE: ON
LAST_SEEN_TRANSACTION:
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
*************************** 2. row ***************************
WORKER_ID: 2
THREAD_ID: 52
SERVICE_STATE: ON
LAST_SEEN_TRANSACTION:
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
*************************** 3. row ***************************
WORKER_ID: 3
THREAD_ID: 53
SERVICE_STATE: ON
LAST_SEEN_TRANSACTION:
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
*************************** 4. row ***************************
WORKER_ID: 4
THREAD_ID: 54
SERVICE_STATE: ON
LAST_SEEN_TRANSACTION: 954d1ddf-24c6-11e3-b2aa-74867ad41eb0:1262
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
4 rows in set (0.00 sec)
4.支持metadata lock监控(MySQL5.7.3)
root@performance_schema 06:10:00>select * from setup_instruments where name like ‘wait/lock/metadata/sql/mdl';
+—————————-+———+——-+
| NAME | ENABLED | TIMED |
+—————————-+———+——-+
| wait/lock/metadata/sql/mdl | YES | YES |
+—————————-+———+——-+
1 row in set (0.00 sec)
metadata_locks
root@performance_schema 06:38:34>select * from metadata_locks\G
*************************** 1. row *************************** //另外一个session
OBJECT_TYPE: TABLE
OBJECT_SCHEMA: sbtest
OBJECT_NAME: sbtest1
OBJECT_INSTANCE_BEGIN: 48016660856256
LOCK_TYPE: SHARED_READ
LOCK_DURATION: TRANSACTION
LOCK_STATUS: GRANTED
SOURCE: sql_parse.cc:5542
OWNER_THREAD_ID: 32
OWNER_EVENT_ID: 20
*************************** 2. row *************************** //当前线程
OBJECT_TYPE: TABLE
OBJECT_SCHEMA: performance_schema
OBJECT_NAME: metadata_locks
OBJECT_INSTANCE_BEGIN: 48016862659792
LOCK_TYPE: SHARED_READ
LOCK_DURATION: TRANSACTION
LOCK_STATUS: GRANTED
SOURCE: sql_parse.cc:5542
OWNER_THREAD_ID: 34
OWNER_EVENT_ID: 103
2 rows in set (0.00 sec)
GLOBAL
, SCHEMA
, TABLE
, FUNCTION,
PROCEDURE
, TRIGGER
, EVENT,COMMIT
OBJECT_SCHEMA及OBJECT_NAME:mdl锁对应的库名及表名;
LOCK_TYPE:锁的类型,包括
INTENTION_EXCLUSIVE
, SHARED
,SHARED_HIGH_PRIO
, SHARED_READ
, SHARED_WRITE
, SHARED_UPGRADABLE
, SHARED_NO_WRITE
,SHARED_NO_READ_WRITE
, EXCLUSIVE
LOCK_DURATION:锁的持久化类型,当值为STATEMENT 或者TRANSACTION时,分别表示SQL结束或者事务结束时释放;当值为
EXPLICIT
时,表示需要显式的释放mdl。LOCK_STATUS:分别对应锁的不同状态(GRANTED/PENDING/VICTIM/TIMEOUT/KILLED)
SOURCE:该锁定义的代码行
OWNER_THREAD_ID:拥有该MDL的线程ID
OWNER_EVENT_ID:请求MDL的事件ID;
table_handles
root@performance_schema 07:05:38>select * from table_handles where OWNER_EVENT_ID != 0\G
*************************** 1. row ***************************
OBJECT_TYPE: TABLE
OBJECT_SCHEMA: sbtest
OBJECT_NAME: sbtest1
OBJECT_INSTANCE_BEGIN: 48016660799584
OWNER_THREAD_ID: 36
OWNER_EVENT_ID: 21
INTERNAL_LOCK: WRITE
EXTERNAL_LOCK: WRITE EXTERNAL
1 row in set (0.00 sec)
READ
, READ WITH SHARED LOCKS
, READ HIGH PRIORITY
, READ NO INSERT
, WRITE ALLOW WRITE
, WRITE CONCURRENT INSERT
, WRITE LOW PRIORITY
, WRITE
---可以阅读
include/thr_lock.h中的注释来理解这些锁类型含义
5.新的instrument类型:transaction(MySQL5.7.3)
setup_instruments,
setup_consumers 以及
setup_timers 进行控制
root@performance_schema 07:34:47>show tables like ‘%transaction%';
+——————————————————+
| Tables_in_performance_schema (%transaction%) |
+——————————————————+
| events_transactions_current |
| events_transactions_history |
| events_transactions_history_long |
| events_transactions_summary_by_account_by_event_name |
| events_transactions_summary_by_host_by_event_name |
| events_transactions_summary_by_thread_by_event_name |
| events_transactions_summary_by_user_by_event_name |
| events_transactions_summary_global_by_event_name |
+——————————————————+
8 rows in set (0.00 sec)
root@performance_schema 07:38:25>select * from events_transactions_current where thread_id=37 \G
*************************** 1. row ***************************
THREAD_ID: 37
EVENT_ID: 19
END_EVENT_ID: NULL
EVENT_NAME: transaction
STATE: ACTIVE
TRX_ID: NULL
GTID: NULL
XID: NULL
XA_STATE: NULL
SOURCE: transaction.cc:150
TIMER_START: 5432419171316000
TIMER_END: NULL
TIMER_WAIT: NULL
ACCESS_MODE: READ WRITE
ISOLATION_LEVEL: READ COMMITTED
AUTOCOMMIT: NO
NUMBER_OF_SAVEPOINTS: 0
NUMBER_OF_ROLLBACK_TO_SAVEPOINT: 0
NUMBER_OF_RELEASE_SAVEPOINT: 0
OBJECT_INSTANCE_BEGIN: NULL
NESTING_EVENT_ID: 18
NESTING_EVE
ACTIVE
,COMMITTED
, ROLLED BACK
MySQL5.7新增Performance Schema表相关推荐
- mysql 5.7 sys schema_案例详细说明MySQL5.7中 performance与sys schema中的监控参数
软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...
- mysql.gtid executed_【20180608】MySQL5.7新增表mysql.gtid_executed
MySQL5.7新增表mysql.gtid_executed MySQL5.6主从,从库获取gtid_executed 在MySQL5.6的时候,主从复制开启了GTID,在slave执行show sl ...
- [MySQL 5.6] Performance Schema 之 PS配置项(1)
尽管Performance Schema(以下简称PS)在5.5中已经出现,但一直没有使用过,并且相比5.6,5.5的PS表要少很多. 以下从一个初学者的角度,阅读PS的官方文档,做一些简单的笔记 官 ...
- mysql开启perform sch_MySQL Performance schema设置的一些建议选项
MySQL 的Performance Schema由来已久,但由于内存消耗,性能影响等原因,导致其始终无法进入主流的MySQL默认配置,对MySQL的问题诊断以及处理造成很多不利的影响. 一般而言,P ...
- MYSQL performance schema详解
MYSQL performance schema详解 0.performance_schema的介绍 MySQL的performance schema 用于监控MySQL server在一个较低级 ...
- MySQL深潜|剖析Performance Schema内存管理
简介: 本文主要是通过对PFS引擎的内存管理源码的阅读,解读PFS内存分配及释放原理,深入剖析其中存在的一些问题,以及一些改进思路. 一 引言 MySQL Performance schema(PF ...
- MYSQL深潜 - 剖析Performance Schema内存管理
简介: 本文主要是通过对PFS引擎的内存管理的源码的阅读,解读PFS内存分配及释放原理,深入剖析其中存在的一些问题,以及一些改进思路.本文源代码分析基于Mysql-8.0.24版本. 作者 | 之枢 ...
- MySQL性能调优必知:Performance Schema引擎的配置与使用
当你在MySQL高并发情况下的进行性能调优时,需要知道调整后的影响.例如查询是否变快了?锁是否会减慢运行速度?内存使用情况如何?磁盘IO等待时间变了吗? . Performance Schema就有一 ...
- Performance Schema使用简介(一)
Performance Schema简介 Oracle DBA都应该知道 Oracle中提供了大量的视图供DBA们排查问题使用,并且有等待事件帮助大家快速定位问题属于哪一类.MySQL 中也有Perf ...
最新文章
- iOS动画详解(学习动画看这一篇就够了)
- Xiotech任命新CEO EMC又少一员大将
- 浅谈代码的执行效率(3):缓存与局部性
- RHCSA 系列(十四): 在 RHEL 7 中设置基于 LDAP 的认证
- Java中Integer.parseInt()用法
- 【Spring】配置SpringBoot同时支持http和https访问
- Vmware虚拟机不能使用键盘的解决方法
- ERROR 1201 (HY000) Could not initialize master info structure
- UDK+VS2008搭建空工程
- Alibaba内网内部资料真香 -Spring手册太全了,
- DevExpress 设计Ribbon界面
- 小米手机获取完整ROOT权限教程
- 笔记本锁定计算机功能键,笔记本键盘锁定键在哪_笔记本电脑的“键盘锁”是哪一个键-win7之家...
- 阿里巴巴数字化运营能力
- 2021年焊工(初级)模拟考试题及焊工(初级)模拟考试题库
- kali系统---DNS收集分析之dnsrecon
- semanticui图标大全
- 成都自传-MoccA and 555
- REDHAT7 安装NTP服务
- 智能天线技术改善频谱使用效率
热门文章
- oracle数据设置为ull,Oracle _11g_使用手册_自备
- 【Linux】shell调用Java程序main方法通过crontab定时执行
- 解除Linux最大进程数和最大文件句柄打开数限制
- linux命令 - ln - 创建和删除软、硬链接
- LNMP - nginx代理详解
- Android与iOS/WP8跨平台整合设计与开发_专栏
- 简繁互相切换的字库(比较全)
- Linux 命令(17)—— su 与 sudo 命令
- java判断一个字符串是否为空,isEmpty和isBlank的区别
- dbeaver can't connect HBase1.2 using phoenix driver #1863