赞
踩
Mysql5.7版本自带4个数据库,information_schema、mysql、performance_schema、sys。从MySQL 5.5开始新增PERFORMANCE_SCHEMA数据库,主要用于收集数据库服务器性能参数。并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。而现在5.6,5.7中performance-Schema又添加了更多的监控项,统计信息也更丰富。MySQL5.5默认是关闭的,需要手动开启,在配置文件里添加performance_schema=ON,在5.7中performance-Schema库默认为开启状态。
performance_schema数据库中的表可以分为以下几类:
setup_actors:如何初始化对新前台线程的监视
setup_consumers:可以将事件信息发送和存储到的目的地
setup_instruments:可以收集事件的检测对象的类别
setup_objects:应监视哪些对象
setup_timers:当前事件计时器
当前事件表。该 events_waits_current表包含每个线程的最新事件。其他类似的表包含事件层次结构不同级别上的当前事件:events_stages_current 阶段事件, events_statements_current语句事件和 events_transactions_current事务事件。
历史记录表。这些表与当前事件表具有相同的结构,但包含更多行。例如,对于等待事件,events_waits_history 表包含每个线程最近的10个事件。 events_waits_history_long 包含最近的10,000个事件。对于阶段,语句和事务历史记录,还存在其他类似的表。
要更改历史记录表的大小,请在服务器启动时设置适当的系统变量。例如,要设置等待事件历史记录表的大小,请设置 performance_schema_events_waits_history_size 和 performance_schema_events_waits_history_long_size。
汇总表。这些表包含按事件组聚合的信息,包括已从历史记录表中丢弃的事件。
实例表。这些表记录了要检测的对象类型。服务器使用检测对象时,将产生一个事件。这些表提供事件名称和说明性注释或状态信息。
cond_instances:条件同步对象实例
file_instances:文件实例
mutex_instances:互斥对象同步对象实例
rwlock_instances:锁定同步对象实例
socket_instances:活动连接实例
mysql> show tables;
±-----------------------------------------------------+
| Tables_in_performance_schema |
±-----------------------------------------------------+
| accounts |
| cond_instances |
| events_stages_current |
| events_stages_history |
| events_stages_history_long |
| events_stages_summary_by_account_by_event_name |
| events_stages_summary_by_host_by_event_name |
| events_stages_summary_by_thread_by_event_name |
| events_stages_summary_by_user_by_event_name |
| events_stages_summary_global_by_event_name |
| events_statements_current |
| events_statements_history |
| events_statements_history_long |
| events_statements_summary_by_account_by_event_name |
| events_statements_summary_by_digest |
| events_statements_summary_by_host_by_event_name |
| events_statements_summary_by_program |
| events_statements_summary_by_thread_by_event_name |
| events_statements_summary_by_user_by_event_name |
| events_statements_summary_global_by_event_name |
| 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 |
| events_waits_current |
| events_waits_history |
| events_waits_history_long |
| events_waits_summary_by_account_by_event_name |
| events_waits_summary_by_host_by_event_name |
| events_waits_summary_by_instance |
| events_waits_summary_by_thread_by_event_name |
| events_waits_summary_by_user_by_event_name |
| events_waits_summary_global_by_event_name |
| file_instances |
| file_summary_by_event_name |
| file_summary_by_instance |
| global_status |
| global_variables |
| host_cache |
| hosts |
| 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 |
| metadata_locks |
| mutex_instances |
| objects_summary_global_by_type |
| performance_timers |
| prepared_statements_instances |
| replication_applier_configuration |
| replication_applier_status |
| replication_applier_status_by_coordinator |
| replication_applier_status_by_worker |
| replication_connection_configuration |
| replication_connection_status |
| replication_group_member_stats |
| replication_group_members |
| rwlock_instances |
| session_account_connect_attrs |
| session_connect_attrs |
| session_status |
| session_variables |
| setup_actors |
| setup_consumers |
| setup_instruments |
| setup_objects |
| setup_timers |
| socket_instances |
| socket_summary_by_event_name |
| socket_summary_by_instance |
| status_by_account |
| status_by_host |
| status_by_thread |
| status_by_user |
| table_handles |
| table_io_waits_summary_by_index_usage |
| table_io_waits_summary_by_table |
| table_lock_waits_summary_by_table |
| threads |
| user_variables_by_thread |
| users |
| variables_by_thread |
±-----------------------------------------------------+
87 rows in set (0.00 sec)
表名 | 描述 |
---|---|
accounts | 每个客户帐户的连接统计信息 |
cond_instances | 同步对象实例 |
events_stages_current | 当前阶段的事件 |
events_stages_history | 每个线程的最近阶段事件 |
events_stages_history_long | 总体上最近的舞台活动 |
events_stages_summary_by_account_by_event_name | 每个帐户和事件名称的登台事件 |
events_stages_summary_by_host_by_event_name | 根据主机名和事件名进行事件 |
events_stages_summary_by_thread_by_event_name | 每个线程和事件名称的阶段等待 |
events_stages_summary_by_user_by_event_name | 根据用户名和事件名进行事件 |
events_stages_summary_global_by_event_name | 每个事件名称的阶段等待 |
events_statements_current | 当前声明事件 |
events_statements_history | 每个线程的最新语句事件 |
events_statements_history_long | 整体最近的声明事件 |
events_statements_summary_by_account_by_event_name | 每个帐户和事件名称的语句事件 |
events_statements_summary_by_digest | 每个架构的语句事件和摘要值 |
events_statements_summary_by_host_by_event_name | 每个主机名和事件名的语句事件 |
events_statements_summary_by_program | 每个存储程序的语句事件 |
events_statements_summary_by_thread_by_event_name | 每个线程和事件名称的语句事件 |
events_statements_summary_by_user_by_event_name | 每个用户名和事件名的语句事件 |
events_statements_summary_global_by_event_name | 每个事件名称的语句事件 |
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 | 每个事件名称的交易事件 |
events_waits_current | 当前的等待事件 |
events_waits_history | 每个线程的最新等待事件 |
events_waits_history_long | 总体上最近的等待事件 |
events_waits_summary_by_account_by_event_name | 每个帐户和事件名称的等待事件 |
events_waits_summary_by_host_by_event_name | 每个主机名和事件名的等待事件 |
events_waits_summary_by_instance | 每个实例的等待事件 |
events_waits_summary_by_thread_by_event_name | 每个线程和事件名称的等待事件 |
events_waits_summary_by_user_by_event_name | 每个用户名和事件名的等待事件 |
events_waits_summary_global_by_event_name | 每个事件名称的等待事件 |
file_instances | 文件实例 |
file_summary_by_event_name | 每个事件名称的文件事件 |
file_summary_by_instance | 每个文件实例的文件事件 |
global_status | 全局状态变量 |
global_variables | 全局系统变量 |
host_cache | 来自内部主机缓存的信息 |
hosts | 每个客户端主机名的连接统计信息 |
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 | 每个事件名称的全局内存操作 |
metadata_locks | 元数据锁定和锁定请求 |
mutex_instances | 互斥体同步对象实例 |
objects_summary_global_by_type | 对象摘要 |
performance_timers | 哪些事件计时器可用 |
prepared_statements_instances | 准备的语句实例和统计信息 |
replication_applier_configuration | 副本上事务处理程序的配置参数 |
replication_applier_status | 副本上事务处理应用程序的当前状态 |
replication_applier_status_by_coordinator | SQL或协调器线程应用程序状态 |
replication_applier_status_by_worker | 工作线程应用程序状态(除非副本为多线程,否则为空) |
replication_connection_configuration | 用于连接到源的配置参数 |
replication_connection_status | 到源的连接的当前状态 |
rwlock_instances | 锁定同步对象实例 |
session_account_connect_attrs | 当前会话的连接属性 |
session_connect_attrs | 所有会话的连接属性 |
session_status | 当前会话的状态变量 |
session_variables | 当前会话的系统变量 |
setup_actors | 如何初始化对新前台线程的监视 |
setup_consumers | 列出了可以存储事件信息并启用事件的使用者类型 |
setup_instruments | 可以为其收集事件的检测对象的类 |
setup_objects | 应该监视哪些对象 |
setup_timers | 当前事件计时器 |
socket_instances | 活动连接实例 |
socket_summary_by_event_name | 套接字等待和每个事件名称的I / O |
socket_summary_by_instance | 套接字等待和每个实例的I / O |
status_by_account | 每个帐户的会话状态变量 |
status_by_host | 每个主机名的会话状态变量 |
status_by_thread | 每个会话的会话状态变量 |
status_by_user | 每个用户名的会话状态变量 |
table_handles | 表锁和锁请求 |
table_io_waits_summary_by_index_usage | 每个索引的表I / O等待 |
table_io_waits_summary_by_table | 每个表的表I / O等待 |
table_lock_waits_summary_by_table | 每个表的表锁定等待 |
threads | 有关服务器线程的信息 |
user_variables_by_thread | 每个线程的用户定义变量 |
users | 每个客户端用户名的连接统计信息 |
variables_by_thread | 每个会话的会话系统变量 |
该setup_actors表包含以下列:
该setup_consumers表包含以下列:
该setup_instruments表包含以下列:
setup_objects表控制性能模式是否监视特定对象。默认情况下,此表的最大大小为100行。该setup_objects表包含以下列:
该setup_timers表包含以下列:
cond_instances表列出了服务器执行时性能架构所看到的所有条件。条件是代码中使用的一种同步机制,用于指示发生了特定事件,以便等待此条件的线程可以恢复工作。当一个线程正在等待某种情况发生时,条件名称指示该线程正在等待什么,但是没有立即的方法来判断哪个其他线程导致了这种情况发生。
该cond_instances表包含以下列:
该file_instances表列出了在执行文件I / O检测时性能架构看到的所有文件。如果从未打开过磁盘上的文件,则该文件不在中 file_instances。从磁盘删除文件后,该文件也会从file_instances表中删除 。
该file_instances表包含以下列:
该mutex_instances表列出了服务器执行时性能架构看到的所有互斥锁。互斥锁是代码中使用的一种同步机制,用于强制在给定时间只有一个线程可以访问某些公共资源。据说该资源已由互斥体“保护”。
当服务器中执行的两个线程(例如,同时执行查询的两个用户会话)确实需要访问相同的资源(文件,缓冲区或某些数据)时,这两个线程相互竞争,因此要获得互斥锁的第一个查询会导致另一个查询等待,直到第一个查询完成并解锁互斥锁。持有互斥锁时执行的工作被称为在 “关键部分”中,并且多个查询确实以串行方式(一次一个)执行该关键部分,这是潜在的瓶颈。
该mutex_instances表包含以下列:
通过对以下两个表执行查询,监视应用程序或DBA可以检测到涉及互斥锁的线程之间的瓶颈或死锁:
rwlock_instances表列出了服务器执行时性能架构看到的所有rwlock(读锁定)实例。Anrwlock是一种代码中使用的同步机制,用于强制给定时间的线程可以按照某些规则访问某些公共资源。该资源被说成是 “保护”由rwlock。访问权限可以是共享的(许多线程可以同时具有读锁),互斥的(排他(在给定时间只有一个线程可以具有写锁))或共享的互斥性(一个线程可以在允许不一致时具有写锁)由其他线程读取)。共享独占访问也称为,它可以 sxlock优化并发性并提高读写工作负载的可伸缩性。
根据请求锁的线程数以及请求的锁的性质,可以在共享模式,独占模式,共享独占模式下授予访问权限,也可以根本不授予访问权限,以等待其他线程先完成。
该rwlock_instances表包含以下列:
通过对以下两个表执行查询,监视应用程序或DBA可以检测到涉及锁的线程之间的某些瓶颈或死锁:
该socket_instances表提供了与MySQL服务器的活动连接的实时快照。该表每个TCP / IP或Unix套接字文件连接包含一行。该表中可用的信息提供了到服务器的活动连接的实时快照。
套接字工具的格式名称 如下: wait/io/socket/sql/socket_type
服务器为它支持的每个网络协议都有一个侦听套接字。与用于TCP / IP或Unix套接字文件连接的侦听套接字关联的工具的socket_type 值分别为server_tcpip_socket或 server_unix_socket。
当侦听套接字检测到连接时,服务器会将连接转移到由单独线程管理的新套接字。新连接线程的工具的socket_type值为client_connection。
连接终止时,将socket_instances 删除与之对应的行 。
该socket_instances表包含以下列:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。