澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

MySQL- 5.7 sys schema笔记

 

原文:

[MySQL Reference Manual] 24 MySQL sys框架,referencemanual


          

24 MySQL sys框架

24 MySQL sys框架... 1

24.1 sys框架的前提条件... 1

24.2 使用sys框架... 2

24.3 sys框架进度报告... 3

24.4 sys框架的对象... 3

24.4.1所有sys下的对象... 3

24.4.2 sys框架的表和触发器... 8

24.4.2.1 sys_config. 8

24.4.3 性能框架视图... 10

24.4.4 sys框架存储过程... 13

24.4.5 sys框架存储函数... 14

 


performance_schema提供监控策略及大量监控项,包括:元数据锁、进度跟踪、事务、内存使用及存储程序等。但是,performance_schema又过于复杂,操作不便,所以5.7新增了 sys schema,基础数据来自于 performance 跟 information_shcema两个库,本身数据库不存储及集采数据。

24.1 sys框架的前提条件

在开始使用sys框架之前,有一些前提条件,sys需要mysql 5.6或者更高版本。因为sys是performance_schema的替代方案,performance_schema必须启动,sys才能够使用。

为了完全访问sys,需要有以下权限:

·         Sys表和视图的select权限。

·         Sys存储过程和函数的exec权限。

·         Sys_config表的insert,update权限。

·         另外执行存储过程需要一些其他的权限,可以看存储过程的描述。

其他权限:

·         Sys框架对象访问的任何performance_Schema的表的select权限,和sys框架对象更新的任何表的update权限。

·         Information_schema.innodb_buffer_page的process表。

特定的performance_Schema消费者和记录点要启动:

·         所有的等待记录点

·         所有stage记录点

·         所有statement记录点

·         Xxx_current和xxx_history_long消费者相关的所有事件。

你可以使用sys下面的存储过程启动所有这些选项:

CALL sys.ps_setup_enable_instrument('wait');
CALL sys.ps_setup_enable_instrument('stage');
CALL sys.ps_setup_enable_instrument('statement');
CALL sys.ps_setup_enable_consumer('current');
CALL sys.ps_setup_enable_consumer('history_long');

注意点:

       对于很多sys的使用,默认的性能框架数据收集就能够满足,启动所有的记录点和消费者会对性能有一点影响,所以最好只启动你要的配置。通过这个函数也可以返回默认配置:

CALL sys.ps_setup_reset_to_default(TRUE);

 

1 视图分类

24.2 使用sys框架

查看sys版本和mysql版本:

mysql> USE sys;

Database changed

mysql> SELECT * FROM version;

------------- -----------------

| sys_version | mysql_version   |

------------- -----------------

| 1.5.0       | 5.7.9-debug-log |

------------- -----------------

Sys框架下包含了很多视图合计了性能框架的表。很多这些视图成对出现的,比如一个成员的名字和另外一个一样,只是加了x$的前缀。比如host_summary_by_file_io有个名字一样的x$host_summary_by_file_io,2个显示的单位不同。

mysql> SELECT * FROM host_summary_by_file_io;

------------ ------- ------------

| host       | ios   | io_latency |

------------ ------- ------------

| localhost  | 67570 | 5.38 s     |

| background |  3468 | 4.18 s     |

------------ ------- ------------

 

mysql> SELECT * FROM x$host_summary_by_file_io;

------------ ------- ---------------

| host       | ios   | io_latency    |

------------ ------- ---------------

| localhost  | 67574 | 5380678125144 |

| background |  3474 | 4758696829416 |

------------ ------- ---------------

没有x$前缀的表更容易读。带x$和不带x$显示的数值是一样大的用来用具获取和处理这些数据。

可以使用show 语句或者information_schema的查询获取对象的定义比如:

mysql> SHOW CREATE VIEW session;

mysql> SHOW CREATE FUNCTION format_bytes;

mysqldump,mysqlpump默认不导出sys框架,导出sys需要显示设置:

mysqldump --databases --routines sys > sys_dump.sql
mysqlpump sys > sys_dump.sql

导入sys结构:

mysql < sys_dump.sql

    如果转载,请注明博文来源: www.cnblogs.com/xinysu/   ,版权归 博客园 苏家小萝卜 所有。望各位支持!

2 日常应用

24.3 sys框架进度报告

Mysql 5.7.9,在sys下提供了长运行事务的进度报告:

Processlist
session
x$processlist
x$session

假设请求的记录点和消费者已经启动了,这些视图的progress列显示了完成的百分比。

stage进度报告要启动events_stages_current消费者,还有一些需要启动的记录点信息:

stage/sql/Copying to tmp table
stage/innodb/alter table (end)
stage/innodb/alter table (flush)
stage/innodb/alter table (insert)
stage/innodb/alter table (log apply index)
stage/innodb/alter table (log apply table)
stage/innodb/alter table (merge sort)
stage/innodb/alter table (read PK 和 internal sort)
stage/innodb/buffer pool load

对于stage不支持简历和完成工作报告,如果请求记录点和消费者没有启动,progress列为null。

  

2.1 查看process

     常用的有以下3个查询:

show processlist;
show full processlist;
select * from information_schema.processlist;

    其中,show processlist为简要查看当前连接数据库情况,包含SQL语句的statement列仅提供部分SQL,而show full processlist则提供完整的SQL 语句,information_schema.processlist的内容与show full processlist 内容一致,但是可以以表格查询的形式添加where条件,达到自己的使用需求。

  澳门新浦京娱乐场网站 1    除此之外,sys提供以下四个视图查看 连接情况,这四个则更为详细的提供了 行数情况、临时表情况、当前SQL以及最后提交SQL(即使是sleep状态,这里也有最后提交的SQL可以查看)等信息。  

select * from sys.processlist;
select * from sys.session;
select * from sys.x$processlist;
select * from sys.x$session;

澳门新浦京娱乐场网站 2

    由于 SQL内容提供为摘要部分,若想详细查看,可以通过 `performance_schema`.`events_statements_current` 表格查看,通过sys.processlist 的thd_id关联查看。  澳门新浦京娱乐场网站 3

24.4 sys框架的对象


2.2 查看表访问量

 select table_schema,table_name,sum(io_read_requests io_write_requests) io from schema_table_statistics group by table_schema,table_name order by io desc limit 10;
 -------------- ---------------------------------- ------ 
| table_schema | table_name                       | io   |
 -------------- ---------------------------------- ------ 
| ycf_sqlpub   | django_session                   | 2194 |
| dba_sqlpub   | django_session                   |  735 |
| ycf_sqlpub   | sqlversion_registersql           |  347 |
| ycf_sqlpub   | xadmin_log                       |  331 |
| ycf_sqlpub   | sqlversion_registersqllog_sqls   |  329 |
| ycf_sqlpub   | sqlversion_sqlpublishlog_version |  311 |
| ycf_sqlpub   | sqlversion_sqlpublishlog         |  308 |
| ycf_sqlpub   | sqlversion_registersqllog        |  299 |
| ycf_sqlpub   | auth_group_permissions           |  298 |
| ycf_sqlpub   | testenv_testalldb                |  295 |
 -------------- ---------------------------------- ------ 

24.4.1所有sys下的对象

Table 24.1 sys Schema Tables 和 Triggers

Table or Trigger Name

Description

sys_config

sys schema configuration options

sys_config_insert_set_user

sys_config insert trigger

sys_config_update_set_user

sys_config update trigger

 

Table 24.2 sys Schema Views

View Name

Description

host_summary, x$host_summary

Statement activity, file I/O, 和 connections, grouped by host

host_summary_by_file_io, x$host_summary_by_file_io

File I/O, grouped by host

host_summary_by_file_io_type, x$host_summary_by_file_io_type

File I/O, grouped by host 和 event type

host_summary_by_stages, x$host_summary_by_stages

Statement stages, grouped by host

host_summary_by_statement_latency, x$host_summary_by_statement_latency

Statement statistics, grouped by host

host_summary_by_statement_type, x$host_summary_by_MySQL- 5.7 sys schema笔记。statement_type

Statements executed, grouped by host 和 statement

innodb_buffer_stats_by_schema, x$innodb_buffer_stats_by_schema

InnoDB buffer information, grouped by schema

innodb_buffer_stats_by_table, x$innodb_buffer_stats_by_table

InnoDB buffer information, grouped by schema 和 table

innodb_lock_waits, x$innodb_lock_waits

InnoDB lock information

io_by_thread_by_latency, x$io_by_thread_by_latency

I/O consumers, grouped by thread

io_global_by_file_by_bytes, x$io_global_by_file_by_bytes

Global I/O consumers, grouped by file 和 bytes

io_global_by_file_by_latency, x$io_global_by_file_by_latency

Global I/O consumers, grouped by file 和 latency

io_global_by_wait_by_bytes, x$io_global_by_wait_by_bytes

Global I/O consumers, grouped by bytes

io_global_by_wait_by_latency, x$io_global_by_wait_by_latency

Global I/O consumers, grouped by latency

latest_file_io, x$latest_file_io

Most recent I/O, grouped by file 和 thread

memory_by_host_by_current_bytes, x$memory_by_host_by_current_bytes

Memory use, grouped by host

memory_by_thread_by_current_bytes, x$memory_by_thread_by_current_bytes

Memory use, grouped by thread

memory_by_user_by_current_bytes, x$memory_by_user_by_current_bytes

Memory use, grouped by user

memory_global_by_current_bytes, x$memory_global_by_current_bytes

Memory use, grouped by allocation type

memory_global_total, x$memory_global_total

Total memory use

metrics

Server metrics

processlist, x$processlist

Processlist information

ps_check_lost_instrumentation

Variables that have lost instruments

schema_auto_increment_columns

AUTO_INCREMENT column information

schema_index_statistics, x$schema_index_statistics

Index statistics

schema_object_overview

Types of objects within each schema

schema_redundant_indexes

Duplicate or redundant indexes

schema_table_lock_waits, x$schema_table_lock_澳门新浦京娱乐场网站,waits

Sessions waiting for metadata locks

schema_table_statistics, x$schema_table_statistics

Table statistics

schema_table_statistics_with_buffer,x$schema_table_statistics_with_buffer

Table statistics, including InnoDB buffer pool statistics

schema_tables_with_full_table_scans,x$schema_tables_with_full_table_scans

Tables being accessed with full scans

schema_unused_indexes

Indexes not in active use

session, x$session

Processlist information for user sessions

session_ssl_status

Connection SSL information

statement_analysis, x$statement_analysis

Statement aggregate statistics

statements_with_errors_or_warnings, x$statements_with_errors_or_warnings

Statements that have produced errors or warnings

statements_with_full_table_scans, x$statements_with_full_table_scans

Statements that have done full table scans

statements_with_runtimes_in_95th_percentile,x$statements_with_runtimes_in_95th_percentile

Statements with highest average runtime

statements_with_sorting, x$statements_with_sorting

Statements that performed sorts

statements_with_temp_tables, x$statements_with_temp_tables

Statements that used temporary tables

user_summary, x$user_summary

User statement 和 connection activity

user_summary_by_file_io, x$user_summary_by_file_io

File I/O, grouped by user

user_summary_by_file_io_type, x$user_summary_by_file_io_type

File I/O, grouped by user 和 event

user_summary_by_stages, x$user_summary_by_stages

Stage events, grouped by user

user_summary_by_statement_latency, x$user_summary_by_statement_latency

Statement statistics, grouped by user

user_summary_by_statement_type, x$user_summary_by_statement_type

Statements executed, grouped by user 和 statement

version

Current sys schema 和 MySQL server versions

wait_classes_global_by_avg_latency, x$wait_classes_global_by_avg_latency

Wait class average latency, grouped by event class

wait_classes_global_by_latency, x$wait_classes_global_by_latency

Wait class total latency, grouped by event class

waits_by_host_by_latency, x$waits_by_host_by_latency

Wait events, grouped by host 和 event

waits_by_user_by_latency, x$waits_by_user_by_latency

Wait events, grouped by user 和 event

waits_global_by_latency, x$waits_global_by_latency

Wait events, grouped by event

x$ps_digest_95th_percentile_by_avg_us

Helper view for 95th-percentile views

x$ps_digest_avg_latency_distribution

Helper view for 95th-percentile views

x$ps_schema_table_statistics_io

Helper view for table-statistics views

x$schema_flattened_keys

Helper view for schema_redundant_indexes

 

Table 24.3 sys Schema Stored Procedures

Procedure Name

Description

create_synonym_db()

Create synonym for schema

diagnostics()

Collect system diagnostic information

execute_prepared_stmt()

Execute prepared statement

ps_setup_disable_background_threads()

Disable background thread instrumentation

ps_setup_disable_consumer()

Disable consumers

ps_setup_disable_instrument()

Disable instruments

ps_setup_disable_thread()

Disable instrumentation for thread

ps_setup_enable_background_threads()

Enable background thread instrumentation

ps_setup_enable_consumer()

Enable consumers

ps_setup_enable_instrument()

Enable instruments

ps_setup_enable_thread()

Enable instrumentation for thread

ps_setup_reload_saved()

Reload saved Performance Schema configuration

ps_setup_reset_to_default()

Reset saved Performance Schema configuration

ps_setup_save()

Save Performance Schema configuration

ps_setup_show_disabled()

Display disabled Performance Schema configuration

ps_setup_show_disabled_consumers()

Display disabled Performance Schema consumers

ps_setup_show_disabled_instruments()

Display disabled Performance Schema instruments

ps_setup_show_enabled()

Display enabled Performance Schema configuration

ps_setup_show_enabled_consumers()

Display enabled Performance Schema consumers

ps_setup_show_enabled_instruments()

Display enabled Performance Schema instruments

ps_statement_avg_latency_histogram()

Display statement latency histogram

ps_trace_statement_digest()

Trace Performance Schema instrumentation for digest

ps_trace_thread()

Dump Performance Schema data for thread

ps_truncate_all_tables()

Truncate Performance Schema summary tables

statement_performance_analyzer()

Report of statements running on server

table_exists()

Whether a table exists

 

Table 24.4 sys Schema Stored Functions

Function Name

MySQL- 5.7 sys schema笔记。Description

extract_schema_from_file_name()

Extract schema name from file path name

extract_table_from_file_name()

Extract table name from file path name

format_bytes()

Convert byte value to value with units

format_path()

Replace data 和 temp-file directories in path name with symbolic values

format_statement()

Truncate long statement to fixed length

format_time()

Convert picoseconds value to value with units

list_add()

Add item to list

list_drop()

Remove item from list

ps_is_account_enabled()

Check whether account instrumentation is enabled

ps_is_consumer_enabled()

Check whether consumer is enabled

ps_is_instrument_default_enabled()

Check whether instrument is enabled

ps_is_instrument_default_timed()

Check whether instrument is timed

ps_is_thread_instrumented()

Check whether thread is instrumented

ps_thread_account()

Return account for thread ID

ps_thread_id()

Return thread ID for connection ID

ps_thread_stack()

Return event information for thread ID

ps_thread_trx_info()

Return transaction information for thread ID

quote_identifier()

Return string as quoted identifier

sys_get_config()

Return sys schema configuration option

version_major()

MySQL server major version number

version_minor()

MySQL server minor version number

version_patch()

MySQL server patch release version number


2.3 冗余索引与未使用索引

# 冗余索引查看
select table_schema,table_name,redundant_index_name,redundant_index_columns,dominant_index_name,dominant_index_columns from sys.schema_redundant_indexes;

# 未使用索引查看
select * from schema_unused_indexes;

24.4.2 sys框架的表和触发器

 

2.4 表自增ID监控

select * from schema_auto_increment_columns G

24.4.2.1 sys_config

Sys_config表列:

·         Variable:配置选项

·         value:选项的值

·         set_time:最近一次修改时间。

·         set_by:最近一次修改用户

为了最小化直接读取sys_config表的影响,sys框架下的函数用来检查用户定义的变量和相关的名字,这个名字使用变量以@sys.为前缀。如果当前会话有用户定义的变量部位null,那么就优先使用变量上的长度。否则就读取表上的值:

mysql> SET @stmt = 'SELECT variable, value, set_time, set_by FROM sys_config';

mysql> SELECT format_statement(@stmt);

----------------------------------------------------------

| format_statement(@stmt)                                  |

----------------------------------------------------------

| SELECT variable, value, set_time, set_by FROM sys_config |

----------------------------------------------------------

mysql> SET @sys.statement_truncate_len = 32;

mysql> SELECT format_statement(@stmt);

-----------------------------------

| format_statement(@stmt)           |

-----------------------------------

| SELECT variabl ... ROM sys_config |

-----------------------------------

之后会话中的会继续使用变量的32,而不是使用表里面的64。

为了停止变量的使用可以使用以下语句,取消或者关闭当前会话:

mysql> SET @sys.statement_truncate_len = NULL;

mysql> SELECT format_statement(@stmt);

----------------------------------------------------------

| format_statement(@stmt)                                  |

----------------------------------------------------------

| SELECT variable, value, set_time, set_by FROM sys_config |

变量可以在会话结束前生效,如果sys_config在会话中被修改,这个修改不会体现在会话上,除非会话结束。

Sys_config和变量的配置值:

·         diagnostics.all_i_s_tables, @sys.diagnostics.all_i_s_tables
如果选项为on,diagnostics()过程允许对information_schema.tables表进行扫描。如果表很多这个操作花费就比较大。

·         diagnostics.include_raw,@sys. diagnostics.include_raw
如果选项为on,diagnostics()过程包含了metrics视图输出的原生数据。默认为off。

·         ps_thread_trx_info.max_length,@sys. ps_thread_trx_info.max_length
ps_thread_trx_info()函数输出的最大json的长度。

·         statement_performance_analyzer.limit,@sys.statement_performance_analyzer.limit
视图返回的最大行数,编译没有限制。最大为100.

·         statement_performance_analyzer.view,@sys.statement_performance_analyzer.view
statement_performance_analyzer()过程使用到的视图和查询。如果选项值包含了空间就表示是一个查询,否则必须是events_statements_summary_by_digest表上的视图。如果上面的limit>0就不能有limit子句。默认我null。

·         statement_truncate_len, @sys.statement_truncate_len
format_statement()函数返回的最大语句长度,长的语句会被截断,默认64.

其他选项可以通过sys_config表添加。比如diagnostics(),execute_prepared_stmt()的调试选项,但是不是sys_config的默认有的选项:

mysql> INSERT INTO sys_config (variable, value) VALUES('debug', 'ON');

修改debug信息:

mysql> UPDATE sys_config SET value = 'OFF' WHERE variable = 'debug';

mysql> SET @sys.debug = NULL;

    performance_schema提供监控策略及大量监控项,包括:元数据锁、进度跟踪、事务、内存使用及存储程序等。但是,performance_schema又过于复杂,操作不便,所以5.7新增了 sys schema,基础数据来自于 performance 跟 information_shcema两个库,本身数据库不存储及集采数据。

2.5 监控全表扫描的sql语句

select * from sys.statements_with_full_table_scans where db = 'test';

24.4.3 性能框架视图

·         host_summary 和 x$host_summary Views
视图显示了语句活动,文件io和连接信息,由host分组

·         host_summary_by_file_io 和 x$host_summary_by_file_io Views
视图总计了文件io,由host分组

·         host_summary_by_file_io_type 和 x$host_summary_by_file_io_type Views
视图总计了文件io,由host和event类型分组。

·         host_summary_by_stages 和 x$host_summary_by_stages Views
总计语句stage,由host分组

·         host_summary_by_statement_latency 和 x$host_summary_by_statement_latency Views
总计语句的统计信息,由host分组

·         host_summary_by_statement_type 和 x$host_summary_by_statement_type Views
总计语句的执行,由host和语句类型分组

·         innodb_buffer_stats_by_schema 和 x$innodb_buffer_stats_by_schema Views
统计information_schema.innodb_buffer_page,由schema分组,object_schema为对象的schema,如果为innodb表属于innodb system。

·         innodb_buffer_stats_by_table 和 x$innodb_buffer_stats_by_table Views
统计information_schema.innodb_buffer_page,由表名分组。

·         innodb_lock_waits 和 x$innodb_lock_waits Views
总计了innodb锁等待。列如下:
wait_started:等待开始事件。
wait_age:等待锁的时间长度。
wait_age_secs:等待了多少秒。
locked_table:被锁定的表。
locked_index:被锁的索引
locked_type:锁等待类型
waiting_trx_started:等待事务的开始事件。
waiting_trx_age:等待事务等待时间。
waiting_trx_rows_locked:等待事务锁定的行锁个数。
……

·         io_by_thread_by_latency 和 x$io_by_thread_by_latency Views
总计了IO消费者显示了线程的IO等待。

·         io_global_by_file_by_bytes 和 x$io_global_by_file_by_bytes Views
总计了IO消费者显示每个文件的读写量,由文件分组

·         io_global_by_file_by_latency 和 x$io_global_by_file_by_latency Views
总结io消费者显示io次数和延迟事件,由文件分组

·         io_global_by_wait_by_bytes 和 x$io_global_by_wait_by_bytes Views
每个event的总io字节。

·         io_global_by_wait_by_latency 和 x$io_global_by_wait_by_latency Views
每个event的总io次数和io等待时间

·         latest_file_io 和 x$latest_file_io Views
总计活动的文件IO,由文件和线程分组。

·         memory_by_host_by_current_bytes 和 x$memory_by_host_by_current_bytes Views
总计host使用的总内存

·         memory_by_thread_by_current_bytes 和 x$memory_by_thread_by_current_bytes Views
线程的内存使用

·         memory_by_user_by_current_bytes 和 x$memory_by_user_by_current_bytes Views
总计用户使用的内存

·         memory_global_by_current_bytes 和 x$memory_global_by_current_bytes Views
每个分配类型分配的内存

·         memory_global_total 和 x$memory_global_total Views
服务的总内存使用

·         metrics View
视图总计mysql服务的指标,显示变量名,变量值,类型和他们的启动情况。视图在mysql 5.7.9被添加,视图主要包含信息:

o    全局的状态变量,来至于global_status表。

o    来自information_schema.global_status.Innodb指标

o    当前和所有内存分配

o    当前时间

有一些在global_status和innodb_status中有重复的指标,metrics视图会进行消除。

·         processlist 和 x$processlist Views
比show processlist返回的信息更加详细

·         ps_check_lost_instrumentation View
返回丢失的性能框架记录点,显示是否性能框架可以跟踪所有数据。

·         schema_auto_increment_columns View
视图显示了有auto_increment的列,并且提供了有用的信息。

·         schema_index_statistics 和 x$schema_index_statistics Views
视图提供的所有统计信息

·         schema_object_overview View
schema下对象统计

·         schema_redundant_indexes 和 x$schema_flattened_keys Views
显示了冗余的索引

·         schema_table_lock_waits 和 x$schema_table_lock_waits Views
显示了哪些会话被元数据锁锁定,什么锁定了它们

·         schema_table_statistics 和 x$schema_table_statistics Views
表操作的统计,io和延迟的统计

·         schema_table_statistics_with_buffer 和 x$schema_table_statistics_with_buffer Views
表操作的统计,io和延迟的统计,和内存的分配

·         schema_tables_with_full_table_scans 和 x$schema_tables_with_full_table_scans Views
显示了哪些表被表扫描访问

·         schema_unused_indexes View
未使用过的索引

·         session 和 x$session Views
和processlist相似但是不显示后台进程

·         session_ssl_status View
对于每个连接显示SSL版本,chipher和count

·         statement_analysis 和 x$statement_analysis Views
显示了语句的执行情况,执行次数,响应行数,延迟等

·         statements_with_errors_or_warnings 和 x$statements_with_errors_or_warnings Views
语句的错误或者警告

·         statements_with_full_table_scans 和 x$statements_with_full_table_scans Views
用到了表扫描的语句

·         statements_with_runtimes_in_95th_percentile和 x$statements_with_runtimes_in_95th_percentile Views
runtimes在95%以内的语句

·         statements_with_sorting 和 x$statements_with_sorting Views
执行了排序的语句

·         statements_with_temp_tables 和 x$statements_with_temp_tables Views
使用了临时表的语句

·         user_summary 和 x$user_summary Views
用户总计信息,包含语句,文件io,连接

·         user_summary_by_file_io 和 x$user_summary_by_file_io Views
用户文件io总计

·         user_summary_by_file_io_type 和 x$user_summary_by_file_io_type Views
用户文件io类型总计

·         user_summary_by_stages 和 x$user_summary_by_stages Views
用户stage事件总计

·         user_summary_by_statement_latency 和 x$user_summary_by_statement_latency Views
用户在执行语句上的延迟

·         user_summary_by_statement_type 和 x$user_summary_by_statement_type Views
用户在语句类型上的延迟

·         version View
版本

·         wait_classes_global_by_avg_latency 和 x$wait_classes_global_by_avg_latency Views
等待类型延迟汇总,由平均延迟排序

·         wait_classes_global_by_latency 和 x$wait_classes_global_by_latency Views
等待类型延迟汇总,由总延迟排序

·         waits_by_host_by_latency 和 x$waits_by_host_by_latency Views
host,等待事件延迟汇总

·         waits_by_user_by_latency 和 x$waits_by_user_by_latency Views
用户等待事件延迟

·         waits_global_by_latency 和 x$waits_global_by_latency Views
等待事件延迟。

1 视图分类

  1. 主机相关
  2. innodb相关
  3. IO相关
  4. 内存相关
  5. 连接与会话相关
  6. 表相关
  7. 索引相关
  8. 语句相关
  9. 用户相关
  10. 等待信息

2.6 查看实际消耗磁盘IO的文件

select file,avg_read avg_write as avg_io from io_global_by_file_by_bytes order by avg_io desc limit 10;

24.4.4 sys框架存储过程

·         The create_synonym_db() Procedure
创建一个别名数据库,指向被引用的数据库,使用视图指向被引用数据库的表

·         The diagnostics() Procedure
当前服务器的状态,包含了mysql服务版本信息,系统变量,innodb状态,processlist,内存使用信息,performance_schema状态,和一些状态信息。输出到diag.out文件

mysql> tee diag.out;

mysql> CALL diagnostics(120, 30, 'current');

mysql> notee;

·         The execute_prepared_stmt() Procedure
以已准备好的语句,来执行。准备好的语句在执行完成后被释放,所以并不能重用。可以用来执行的动态语句。

·         The ps_setup_disable_background_threads() Procedure
禁止后台进程的所有性能框架记录点

·         The ps_setup_disable_consumer() Procedure
禁用某个消费者

·         The ps_setup_disable_instrument() Procedure
禁用记录点

·         The ps_setup_disable_thread() Procedure
根据连接id,禁用某个线程

·         The ps_setup_enable_background_threads() Procedure
启动后台线程的性能框架记录

·         The ps_setup_enable_consumer() Procedure
启动某个性能框架消费者

·         The ps_setup_enable_instrument() Procedure
启动某个性能框架记录点

·         The ps_setup_enable_thread() Procedure
启动某个连接id对应线程的记录点

·         The ps_setup_reload_saved() Procedure
重新加载性能框架配置,使用之前ps_setup_save保存的配置

·         The ps_setup_reset_to_default() Procedure
重置到默认配置

·         The ps_setup_save() Procedure
保存性能框架配置,这样可以根据调试要求先调整,然后恢复

·         The ps_setup_show_disabled() Procedure
显示当前所有禁用的配置

·         The ps_setup_show_disabled_consumers() Procedure
显示所有禁用的消费者

·         The ps_setup_show_disabled_instruments() Procedure
显示禁用的记录点

·         The ps_setup_show_enabled() Procedure
显示启动的性能框架配置

·         The ps_setup_show_enabled_consumers() Procedure
显示启动的消费者

·         The ps_setup_show_enabled_instruments() Procedure
显示启动的记录点

·         The ps_statement_avg_latency_histogram() Procedure
直方图显示语句的平均延迟

·         The ps_trace_statement_digest() Procedure
跟踪指定语句digest的所有性能记录点。

·         The ps_trace_thread() Procedure
指定连接id的所有性能记录点

·         The ps_truncate_all_tables() Procedure
清空所有性能框架summary表

·         The statement_performance_analyzer() Procedure
创建语句在服务端上运行的报表

·         The table_exists() Procedure
判断是否存在表,视图,临时表

2 日常应用

3 视图一览表

24.4.5 sys框架存储函数

The extract_schema_from_file_name() Function
根据文件路径获取对应的数据库名

The extract_table_from_file_name() Function
根据文件路径获取表名

The format_bytes() Function
给字节数,转化为可读的格式

The format_path() Function
文件路径格式化

The format_statement() Function
格式化语句输出,输出长度和statement_truncate_len配置有关。

The format_time() Function
时间格式化

The list_add() Function
增加一个由逗号隔开的队列中。

The list_drop() Function
从逗号隔开的队列的队列中删除一个元素

The ps_is_account_enabled() Function
判断账号是否启动

The ps_is_consumer_enabled() Function
判断消费者是否启动

The ps_is_instrument_default_enabled() Function
判断记录点是否默认启动

The ps_is_instrument_default_timed() Function
给定记录点默认是否是被计时的。

The ps_is_thread_instrumented() Function
判断连接id对应的性能框架记录点启动

The ps_thread_account() Function
给定连接id,判断线程启动的用户。

The ps_thread_id() Function
给定连接id返回线程id

The ps_thread_stack() Function
给定线程id,返回json格式的语句,stages,events的stack

The ps_thread_trx_info() Function
返回线程id的事务和已经执行的语句

The quote_identifier() Function
引用分隔符

The sys_get_config() Function
获取sys_config表的数据

The version_major() Function
mysql主版本

The version_minor() Function
mysql次版本

The version_patch() Function
mysql补丁号

 

 

Reference Manual] 24 MySQL sys框架,referencemanual 24 MySQL sys 框架 24 MySQL sys 框架 ... 1 24.1 sys 框架的前提条件 ... 1 24.2 使用sys 框架 ... 2 24.3 sy...

2.1 查看process

     常用的有以下3个查询:

show processlist;
show full processlist;
select * from information_schema.processlist;

    其中,show processlist为简要查看当前连接数据库情况,包含SQL语句的statement列仅提供部分SQL,而show full processlist则提供完整的SQL 语句,information_schema.processlist的内容与show full processlist 内容一致,但是可以以表格查询的形式添加where条件,达到自己的使用需求。

澳门新浦京娱乐场网站 4.png)

 澳门新浦京娱乐场网站 5

    除此之外,sys提供以下四个视图查看 连接情况,这四个则更为详细的提供了 行数情况、临时表情况、当前SQL以及最后提交SQL(即使是sleep状态,这里也有最后提交的SQL可以查看)等信息。

 

select * from sys.processlist;
select * from sys.session;
select * from sys.x$processlist;
select * from sys.x$session;

澳门新浦京娱乐场网站 6

    由于 SQL内容提供为摘要部分,若想详细查看,可以通过 `performance_schema`.`events_statements_current` 表格查看,通过sys.processlist 的thd_id关联查看。

 澳门新浦京娱乐场网站 7

3.1 触发器

sys_config 

系统变量表格

笔记链接:sys_config

关注点:statement_truncate_len

  • 影响函数format_statement()截断SQL后的长度,即最后SQL语句显示的总长度,像 sys.processlist 中的 last_statement 的显示长度,就是受到这个函数的约束。可以动态修改会话级别的显示长度,默认为64。

sys_config_insert_set_user

  • sys_config表格发生INSERT操作,则会触发该触发器更新sys_config的set_by列
  • show triggers; 查看源码

sys_config_update_set_user

  • sys_config表格发生UPDATE操作,则会触发该触发器更新sys_config的set_by列
  • show triggers; 查看源码

2.2 查看表访问量

 select table_schema,table_name,sum(io_read_requests io_write_requests) io from schema_table_statistics group by table_schema,table_name order by io desc limit 10;
 -------------- ---------------------------------- ------ 
| table_schema | table_name                       | io   |
 -------------- ---------------------------------- ------ 
| ycf_sqlpub   | django_session                   | 2194 |
| dba_sqlpub   | django_session                   |  735 |
| ycf_sqlpub   | sqlversion_registersql           |  347 |
| ycf_sqlpub   | xadmin_log                       |  331 |
| ycf_sqlpub   | sqlversion_registersqllog_sqls   |  329 |
| ycf_sqlpub   | sqlversion_sqlpublishlog_version |  311 |
| ycf_sqlpub   | sqlversion_sqlpublishlog         |  308 |
| ycf_sqlpub   | sqlversion_registersqllog        |  299 |
| ycf_sqlpub   | auth_group_permissions           |  298 |
| ycf_sqlpub   | testenv_testalldb                |  295 |
 -------------- ---------------------------------- ------ 

3.2 视图

     日常会用到sys库,主要也是使用 视图进行查询,但是目前视图已经非常多了,分为 带x$跟不带这个前缀的视图,这两种没啥实质性区别,不带 x$ 的视图是人性化的结果展示,会有一些单位换算,就是像是 linux 指令中的  -h 选项,而带想x$前缀的,则是原始数据单位,未经换算。      视图那么那么多,实际上常用的不多,会加红色字体显示,其他视图做简单介绍。

2.3 冗余索引与未使用索引

# 冗余索引查看
select table_schema,table_name,redundant_index_name,redundant_index_columns,dominant_index_name,dominant_index_columns from sys.schema_redundant_indexes;

# 未使用索引查看
select * from schema_unused_indexes;

3.2.1 主机相关

host_summary开头的视图

提供IO延迟等相关信息

大致视图如下(红色为常用)

  • The host_summary and x$host_summary Views
  • The host_summary_by_file_io and x$host_summary_by_file_io Views
  • The host_summary_by_file_io_type and x$host_summary_by_file_io_type Views
  • The host_summary_by_stages and x$host_summary_by_stages Views
  • The host_summary_by_statement_latency and x$host_summary_by_statement_latency Views
  • The host_summary_by_statement_type and x$host_summary_by_statement_type Views

简要介绍:

日常中主要适用的是host_summary视图,可以根据连接数据库的host总的执行sql数目、执行时长、表扫描、文件IO、连接情况、用户情况及内存分布情况,可以让DBA快速定位到是哪台host最耗费数据库资源,对连接数据库的所有host有一个大致的资源使用情况的了解。

  • 澳门新浦京娱乐场网站 8

如果想详细查看每个host的主要是在什么文件类型上耗费IO资源,可以查看 host_summary_by_file_io_type视图

  • 澳门新浦京娱乐场网站 9

如果仅查看每台host总的IO情况,则可以查看视图host_summary_by_file_io

  • 澳门新浦京娱乐场网站 10

2.4 表自增ID监控

select * from schema_auto_increment_columns G

3.2.2 innodb相关

innodb开头的视图

汇总了innodb buffer page信息和事务等待innodb锁信息

大致视图如下(红色为常用,但实际上最好少用慎用)

  • The innodb_buffer_stats_by_schema and x$innodb_buffer_stats_by_schema Views
  • The innodb_buffer_stats_by_table and x$innodb_buffer_stats_by_table Views
  • The innodb_lock_waits and x$innodb_lock_waits Views

简要介绍

当一个实例中有多个业务库,由于性能问题,可能想查看下各个数据库的内存占用情况,可以使用视图 innodb_buffer_stats_by_schema,但是少用慎用,因为会扫描整个buffer pool来统计,如果所在实例buffer pool非常大,那么这是一个极为耗费资源的查询,没啥事就不要用哈!这个视图实际上是通过 视图 innodb_buffer_stats_by_table的数据做了group by object_schema得到的。

(截图未测试环境,所以使用到的内存很少)

  • 澳门新浦京娱乐场网站 11

在某种情况下,需要查询表格在内存中的占用情况,可以通过视图 innodb_buffer_stats_by_table来查询,也是扫描整个buffer pool统计,少用慎用。

  • 澳门新浦京娱乐场网站 12

2.5 监控全表扫描的sql语句

select * from sys.statements_with_full_table_scans where db = 'test';

3.2.3 IO相关

io开头的视图

等待IO情况/IO使用情况

大致视图如下(红色为常用)

The io_by_thread_by_latency and x$io_by_thread_by_latency Views

  • 各个IO线程的使用情况

The io_global_by_file_by_bytes and x$io_global_by_file_by_bytes Views

  • 各个数据库文件的IO情况

The io_global_by_file_by_latency and x$io_global_by_file_by_latency Views

  • 各个数据库文件的IO耗时情况

The io_global_by_wait_by_bytes and x$io_global_by_wait_by_bytes Views

  • 数据库事件IO等待情况

The io_global_by_wait_by_latency and x$io_global_by_wait_by_latency Views

  • 数据库事件IO等待耗时情况

The latest_file_io and x$latest_file_io Views

  • 当前正在读写文件的情况

简要介绍

  • 查看数据库实例的IO分布情况,及着重优化对象,可以使用 io_global_by_file_by_bytes

2.6 查看实际消耗磁盘IO的文件

select file,avg_read avg_write as avg_io from io_global_by_file_by_bytes order by avg_io desc limit 10;

3.2.4 内存相关

memory开头的视图

从主机/线程/用户等角度展示内存的使用情况

  • The memory_by_host_by_current_bytes and x$memory_by_host_by_current_bytes Views
  • The memory_by_thread_by_current_bytes and x$memory_by_thread_by_current_bytes Views
  • The memory_by_user_by_current_bytes and x$memory_by_user_by_current_bytes Views
  • The memory_global_by_current_bytes and x$memory_global_by_current_bytes Views
  • The memory_global_total and x$memory_global_total Views

简要介绍

  • 当前内存使用情况,从 host、thread、user等角度来分别查看,对应各自的视图即可。

3 视图一览表

3.2.5 连接与会话相关

含有processlist和session的视图

会话相关的信息

大致视图如下(红色为常用)

  • The processlist and x$processlist Views
  • The session and x$session Views
  • The session_ssl_status View

简要介绍

  • 查看连接使用情况,session的结果跟processlist类似。查看连接情况,有非常多种方式,每种方式都有各自的使用情况,详情可以查看上文说明。

3.1 触发器

sys_config 

系统变量表格

笔记链接:sys_config

关注点:statement_truncate_len

  • 影响函数format_statement()截断SQL后的长度,即最后SQL语句显示的总长度,像 sys.processlist 中的 last_statement 的显示长度,就是受到这个函数的约束。可以动态修改会话级别的显示长度,默认为64。澳门新浦京娱乐场网站 13.png)

sys_config_insert_set_user

  • sys_config表格发生INSERT操作,则会触发该触发器更新sys_config的set_by列
  • show triggers; 查看源码

sys_config_update_set_user

  • sys_config表格发生UPDATE操作,则会触发该触发器更新sys_config的set_by列
  • show triggers; 查看源码

3.2.6 表相关

schema_table开头的视图

从全表扫描/innodb缓冲池表现表统计信息

大致视图如下(红色为常用)

  • The schema_table_lock_waits and x$schema_table_lock_waits Views
  • The schema_table_statistics and x$schema_table_statistics Views
  • The schema_table_statistics_with_buffer and x$schema_table_statistics_with_buffer Views
  • The schema_tables_with_full_table_scans and x$schema_tables_with_full_table_scans Views
  • The schema_auto_increment_columns View

简要介绍

查看表格的update、delete、insert、select的IO情况,可以使用schema_table_statistics视图

  • 澳门新浦京娱乐场网站 14

查看表格的全表扫描情况,抓取需要重点优化的对象,可以使用视图schema_tables_with_full_table_scans

  • 澳门新浦京娱乐场网站 15

查看表格的自增长是否快达到瓶颈了,有些表格存在频繁的删除操作,可能导致自增ID的最大值跟表格数量极不相符合,为了避免问题,可以通过视图 schema_auto_increment_columns,查看有哪些表格快要达到自增的瓶颈值

  • 澳门新浦京娱乐场网站 16

3.2 视图

     日常会用到sys库,主要也是使用 视图进行查询,但是目前视图已经非常多了,分为 带x$跟不带这个前缀的视图,这两种没啥实质性区别,不带 x$ 的视图是人性化的结果展示,会有一些单位换算,就是像是 linux 指令中的  -h 选项,而带想x$前缀的,则是原始数据单位,未经换算。

     视图那么那么多,实际上常用的不多,会加红色字体显示,其他视图做简单介绍。

3.2.7 索引相关

含有index的视图

大致视图如下(红色为常用,一不小心都加红了)

  • The schema_object_overview View
  • The schema_redundant_indexes and x$schema_flattened_keys Views
  • The schema_unused_indexes View
  • The schema_index_statistics and x$schema_index_statistics Views

简要介绍

查看当前实例内各个数据的对象及索引分布情况,可以使用 schema_object_overview

  • 澳门新浦京娱乐场网站 17

查看数据库的冗余索引情况,可以通过视图 schema_redundant_indexes,但是请记住,不是所有冗余索引都要删除,请衡量实际的使用情况、索引大小、索引扫描情况后再决定。

  • 澳门新浦京娱乐场网站 18

查看数据库没有使用的索引,可以使用 schema_unused_indexes

  • 澳门新浦京娱乐场网站 19

查看索引的select updatedeleteinsert情况,可以使用schema_index_statistics

  • 澳门新浦京娱乐场网站 20

3.2.1 主机相关

host_summary开头的视图

提供IO延迟等相关信息

大致视图如下(红色为常用)

  • The host_summary and x$host_summary Views
  • The host_summary_by_file_io and x$host_summary_by_file_io Views
  • The host_summary_by_file_io_type and x$host_summary_by_file_io_type Views
  • The host_summary_by_stages and x$host_summary_by_stages Views
  • The host_summary_by_statement_latency and x$host_summary_by_statement_latency Views
  • The host_summary_by_statement_type and x$host_summary_by_statement_type Views

简要介绍:

日常中主要适用的是host_summary视图,可以根据连接数据库的host总的执行sql数目、执行时长、表扫描、文件IO、连接情况、用户情况及内存分布情况,可以让DBA快速定位到是哪台host最耗费数据库资源,对连接数据库的所有host有一个大致的资源使用情况的了解。

  • 澳门新浦京娱乐场网站 21

    澳门新浦京娱乐场网站 22.png)

如果想详细查看每个host的主要是在什么文件类型上耗费IO资源,可以查看 host_summary_by_file_io_type视图

  • 澳门新浦京娱乐场网站 23

    澳门新浦京娱乐场网站 24.png)

如果仅查看每台host总的IO情况,则可以查看视图host_summary_by_file_io

  • 澳门新浦京娱乐场网站 25

    澳门新浦京娱乐场网站 26.png)

3.2.8 语句相关

statement开头的视图

错误数、警告数、执行全表扫描、使用临时表、执行排序等信息

大致视图如下(红色为常用,功能蛮强大,就是实际还蛮少用到的)

  • The statement_analysis and x$statement_analysis Views
  • The statements_with_errors_or_warnings and x$statements_with_errors_or_warnings Views
  • The statements_with_full_table_scans and x$statements_with_full_table_scans Views
  • The statements_with_runtimes_in_95th_percentile and x$statements_with_runtimes_in_95th_percentile Views
  • The statements_with_sorting and x$statements_with_sorting Views
  • The statements_with_temp_tables and x$statements_with_temp_tables Views

简要描述

  • 汇总SQL中错误数、警告数、执行全表扫描、使用临时表、执行排序等信息,sql语句也是使用 format_statement() 函数做了长度限制,如果想查看完整的SQL,可以通过 这个表格的这一列查看performance_schema`.`events_statements_summary_by_digest`.`DIGEST_TEXT`,关联的添加列是 DIGEST

3.2.2 innodb相关

innodb开头的视图

汇总了innodb buffer page信息和事务等待innodb锁信息

大致视图如下(红色为常用,但实际上最好少用慎用)

  • The innodb_buffer_stats_by_schema and x$innodb_buffer_stats_by_schema Views
  • The innodb_buffer_stats_by_table and x$innodb_buffer_stats_by_table Views
  • The innodb_lock_waits and x$innodb_lock_waits Views

简要介绍

当一个实例中有多个业务库,由于性能问题,可能想查看下各个数据库的内存占用情况,可以使用视图 innodb_buffer_stats_by_schema,但是少用慎用,因为会扫描整个buffer pool来统计,如果所在实例buffer pool非常大,那么这是一个极为耗费资源的查询,没啥事就不要用哈!这个视图实际上是通过 视图 innodb_buffer_stats_by_table的数据做了group by object_schema得到的。

(截图未测试环境,所以使用到的内存很少)

  • 澳门新浦京娱乐场网站 27

    澳门新浦京娱乐场网站 28.png)

在某种情况下,需要查询表格在内存中的占用情况,可以通过视图 innodb_buffer_stats_by_table来查询,也是扫描整个buffer pool统计,少用慎用。

  • 澳门新浦京娱乐场网站 29

    澳门新浦京娱乐场网站 30.png)

3.2.9 用户相关

user开头的视图

用户使用的文件IO/执行语句的统计信息

大致视图如下(红色为常用)

  • The user_summary and x$user_summary Views
  • The user_summary_by_file_io and x$user_summary_by_file_io Views
  • The user_summary_by_file_io_type and x$user_summary_by_file_io_type Views
  • The user_summary_by_stages and x$user_summary_by_stages Views
  • The user_summary_by_statement_latency and x$user_summary_by_statement_latency Views
  • The user_summary_by_statement_type and x$user_summary_by_statement_type Views

简要介绍

  • 从用户的角度,分别统计文件的IO情况、sql执行情况,如果数据库的用户是按照业务模块来划分的,那么则可以清晰的看到哪些业务耗费资源较多

3.2.3 IO相关

io开头的视图

等待IO情况/IO使用情况

大致视图如下(红色为常用)

The io_by_thread_by_latency and x$io_by_thread_by_latency Views

  • 各个IO线程的使用情况

The io_global_by_file_by_bytes and x$io_global_by_file_by_bytes Views

  • 各个数据库文件的IO情况

The io_global_by_file_by_latency and x$io_global_by_file_by_latency Views

  • 各个数据库文件的IO耗时情况

The io_global_by_wait_by_bytes and x$io_global_by_wait_by_bytes Views

  • 数据库事件IO等待情况

The io_global_by_wait_by_latency and x$io_global_by_wait_by_latency Views

  • 数据库事件IO等待耗时情况

The latest_file_io and x$latest_file_io Views

  • 当前正在读写文件的情况

简要介绍

  • 查看数据库实例的IO分布情况,及着重优化对象,可以使用 io_global_by_file_by_bytes澳门新浦京娱乐场网站 31.png)

3.2.10 等待信息

wait开头的视图

The wait_classes_global_by_avg_latency and x$wait_classes_global_by_avg_latency Views

  • 按事件event分组,统计各个event的平均延迟时长

The wait_classes_global_by_latency and x$wait_classes_global_by_latency Views

  • 按事件event分组,统计各个event的总延迟时长

The waits_by_host_by_latency and x$waits_by_host_by_latency Views

The waits_by_user_by_latency and x$waits_by_user_by_latency Views

The waits_global_by_latency and x$waits_global_by_latency Views

  • 所有event的延迟情况

简要介绍

  • 等待类视图,分别从事件、主机、用户等角度,进行查询分析。

 

3.2.4 内存相关

memory开头的视图

从主机/线程/用户等角度展示内存的使用情况

  • The memory_by_host_by_current_bytes and x$memory_by_host_by_current_bytes Views
  • The memory_by_thread_by_current_bytes and x$memory_by_thread_by_current_bytes Views
  • The memory_by_user_by_current_bytes and x$memory_by_user_by_current_bytes Views
  • The memory_global_by_current_bytes and x$memory_global_by_current_bytes Views
  • The memory_global_total and x$memory_global_total Views

简要介绍

  • 当前内存使用情况,从 host、thread、user等角度来分别查看,对应各自的视图即可。

3.2.5 连接与会话相关

含有processlist和session的视图

会话相关的信息

大致视图如下(红色为常用)

  • The processlist and x$processlist Views
  • The session and x$session Views
  • The session_ssl_status View

简要介绍

  • 查看连接使用情况,session的结果跟processlist类似。查看连接情况,有非常多种方式,每种方式都有各自的使用情况,详情可以查看上文说明。

3.2.6 表相关

schema_table开头的视图

从全表扫描/innodb缓冲池表现表统计信息

大致视图如下(红色为常用)

  • The schema_table_lock_waits and x$schema_table_lock_waits Views
  • The schema_table_statistics and x$schema_table_statistics Views
  • The schema_table_statistics_with_buffer and x$schema_table_statistics_with_buffer Views
  • The schema_tables_with_full_table_scans and x$schema_tables_with_full_table_scans Views
  • The schema_auto_increment_columns View

简要介绍

查看表格的update、delete、insert、select的IO情况,可以使用schema_table_statistics视图

  • 澳门新浦京娱乐场网站 32

    澳门新浦京娱乐场网站 33.png)

查看表格的全表扫描情况,抓取需要重点优化的对象,可以使用视图schema_tables_with_full_table_scans

  • 澳门新浦京娱乐场网站 34

    澳门新浦京娱乐场网站 35.png)

查看表格的自增长是否快达到瓶颈了,有些表格存在频繁的删除操作,可能导致自增ID的最大值跟表格数量极不相符合,为了避免问题,可以通过视图 schema_auto_increment_columns,查看有哪些表格快要达到自增的瓶颈值

  • 澳门新浦京娱乐场网站 36

    澳门新浦京娱乐场网站 37.png)

3.2.7 索引相关

含有index的视图

大致视图如下(红色为常用,一不小心都加红了)

  • The schema_object_overview View
  • The schema_redundant_indexes and x$schema_flattened_keys Views
  • The schema_unused_indexes View
  • The schema_index_statistics and x$schema_index_statistics Views

简要介绍

查看当前实例内各个数据的对象及索引分布情况,可以使用 schema_object_overview

  • 澳门新浦京娱乐场网站 38

    澳门新浦京娱乐场网站 39.png)

查看数据库的冗余索引情况,可以通过视图 schema_redundant_indexes,但是请记住,不是所有冗余索引都要删除,请衡量实际的使用情况、索引大小、索引扫描情况后再决定。

  • 澳门新浦京娱乐场网站 40

    澳门新浦京娱乐场网站 41.png)

查看数据库没有使用的索引,可以使用 schema_unused_indexes

  • 澳门新浦京娱乐场网站 42

    澳门新浦京娱乐场网站 43.png)

查看索引的select updatedeleteinsert情况,可以使用schema_index_statistics

  • 澳门新浦京娱乐场网站 44

    澳门新浦京娱乐场网站 45.png)

3.2.8 语句相关

statement开头的视图

错误数、警告数、执行全表扫描、使用临时表、执行排序等信息

大致视图如下(红色为常用,功能蛮强大,就是实际还蛮少用到的)

  • The statement_analysis and x$statement_analysis Views
  • The statements_with_errors_or_warnings and x$statements_with_errors_or_warnings Views
  • The statements_with_full_table_scans and x$statements_with_full_table_scans Views
  • The statements_with_runtimes_in_95th_percentile and x$statements_with_runtimes_in_95th_percentile Views
  • The statements_with_sorting and x$statements_with_sorting Views
  • The statements_with_temp_tables and x$statements_with_temp_tables Views

简要描述

  • 汇总SQL中错误数、警告数、执行全表扫描、使用临时表、执行排序等信息,sql语句也是使用 format_statement() 函数做了长度限制,如果想查看完整的SQL,可以通过 这个表格的这一列查看performance_schema`.`events_statements_summary_by_digest`.`DIGEST_TEXT`,关联的添加列是 DIGEST

3.2.9 用户相关

user开头的视图

用户使用的文件IO/执行语句的统计信息

大致视图如下(红色为常用)

  • The user_summary and x$user_summary Views
  • The user_summary_by_file_io and x$user_summary_by_file_io Views
  • The user_summary_by_file_io_type and x$user_summary_by_file_io_type Views
  • The user_summary_by_stages and x$user_summary_by_stages Views
  • The user_summary_by_statement_latency and x$user_summary_by_statement_latency Views
  • The user_summary_by_statement_type and x$user_summary_by_statement_type Views

简要介绍

  • 从用户的角度,分别统计文件的IO情况、sql执行情况,如果数据库的用户是按照业务模块来划分的,那么则可以清晰的看到哪些业务耗费资源较多

3.2.10 等待信息

wait开头的视图

The wait_classes_global_by_avg_latency and x$wait_classes_global_by_avg_latency Views

  • 按事件event分组,统计各个event的平均延迟时长

The wait_classes_global_by_latency and x$wait_classes_global_by_latency Views

  • 按事件event分组,统计各个event的总延迟时长

The waits_by_host_by_latency and x$waits_by_host_by_latency Views

The waits_by_user_by_latency and x$waits_by_user_by_latency Views

The waits_global_by_latency and x$waits_global_by_latency Views

  • 所有event的延迟情况

简要介绍

  • 等待类视图,分别从事件、主机、用户等角度,进行查询分析。

 

本文由澳门新浦京娱乐场网站发布于数据库,转载请注明出处:MySQL- 5.7 sys schema笔记