25 MySQL sys框架

24 MySQL sys框架

24.1 sys框架的前提条件

24.2 使用sys框架

24.3 sys框架进度报告

24.4 sys框架的对象

24.4.1所有sys下的对象

24.4.2 sys框架的表和触发器

24.4.2.1 sys_config

24.4.3 性能框架视图

24.4.4 sys框架存储过程

24.4.5 sys框架存储函数

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);

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

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。

24.4 sys框架的对象

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_summaryx$host_summary


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


host_summary_by_file_iox$host_summary_by_file_io


File I/O, grouped by host


host_summary_by_file_io_typex$host_summary_by_file_io_type


File I/O, grouped by host 和 event type


host_summary_by_stagesx$host_summary_by_stages


Statement stages, grouped by host


host_summary_by_statement_latencyx$host_summary_by_statement_latency


Statement statistics, grouped by host


host_summary_by_statement_typex$host_summary_by_statement_type


Statements executed, grouped by host 和 statement


innodb_buffer_stats_by_schemax$innodb_buffer_stats_by_schema


InnoDB buffer information, grouped by schema


innodb_buffer_stats_by_tablex$innodb_buffer_stats_by_table


InnoDB buffer information, grouped by schema 和 table


innodb_lock_waitsx$innodb_lock_waits


InnoDB lock information


io_by_thread_by_latencyx$io_by_thread_by_latency


I/O consumers, grouped by thread


io_global_by_file_by_bytesx$io_global_by_file_by_bytes


Global I/O consumers, grouped by file 和 bytes


io_global_by_file_by_latencyx$io_global_by_file_by_latency


Global I/O consumers, grouped by file 和 latency


io_global_by_wait_by_bytesx$io_global_by_wait_by_bytes


Global I/O consumers, grouped by bytes


io_global_by_wait_by_latencyx$io_global_by_wait_by_latency


Global I/O consumers, grouped by latency


latest_file_iox$latest_file_io


Most recent I/O, grouped by file 和 thread


memory_by_host_by_current_bytesx$memory_by_host_by_current_bytes


Memory use, grouped by host


memory_by_thread_by_current_bytesx$memory_by_thread_by_current_bytes


Memory use, grouped by thread


memory_by_user_by_current_bytesx$memory_by_user_by_current_bytes


Memory use, grouped by user


memory_global_by_current_bytesx$memory_global_by_current_bytes


Memory use, grouped by allocation type


memory_global_totalx$memory_global_total


Total memory use


metrics


Server metrics


processlistx$processlist


Processlist information


ps_check_lost_instrumentation


Variables that have lost instruments


schema_auto_increment_columns


AUTO_INCREMENT column information


schema_index_statisticsx$schema_index_statistics


Index statistics


schema_object_overview


Types of objects within each schema


schema_redundant_indexes


Duplicate or redundant indexes


schema_table_lock_waitsx$schema_table_lock_waits


Sessions waiting for metadata locks


schema_table_statisticsx$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


sessionx$session


Processlist information for user sessions


session_ssl_status


Connection SSL information


statement_analysisx$statement_analysis


Statement aggregate statistics


statements_with_errors_or_warningsx$statements_with_errors_or_warnings


Statements that have produced errors or warnings


statements_with_full_table_scansx$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_sortingx$statements_with_sorting


Statements that performed sorts


statements_with_temp_tablesx$statements_with_temp_tables


Statements that used temporary tables


user_summaryx$user_summary


User statement 和 connection activity


user_summary_by_file_iox$user_summary_by_file_io


File I/O, grouped by user


user_summary_by_file_io_typex$user_summary_by_file_io_type


File I/O, grouped by user 和 event


user_summary_by_stagesx$user_summary_by_stages


Stage events, grouped by user


user_summary_by_statement_latencyx$user_summary_by_statement_latency


Statement statistics, grouped by user


user_summary_by_statement_typex$user_summary_by_statement_type


Statements executed, grouped by user 和 statement


version


Current sys schema 和 MySQL server versions


wait_classes_global_by_avg_latencyx$wait_classes_global_by_avg_latency


Wait class average latency, grouped by event class


wait_classes_global_by_latencyx$wait_classes_global_by_latency


Wait class total latency, grouped by event class


waits_by_host_by_latencyx$waits_by_host_by_latency


Wait events, grouped by host 和 event


waits_by_user_by_latencyx$waits_by_user_by_latency


Wait events, grouped by user 和 event


waits_global_by_latencyx$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


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

24.4.2 sys框架的表和触发器

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;

24.4.3 性能框架视图

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

24.4.4 sys框架存储过程

mysql> tee diag.out;
mysql> CALL diagnostics(120, 30, ‘current‘);
mysql> notee;

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补丁号

时间: 2024-10-13 02:22:29

25 MySQL sys框架的相关文章

[MySQL Reference Manual] 24 MySQL sys框架

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 24.

mysql sys table

本文详细地介绍了MySQL 5.7新引入的sys schema.首先,本文概要地介绍了sys schema的作用和定位:其次,分别介绍了sys schema中的视图.函数和存储过程:接下来,通过两个例子来演示sys schema的用法,便于大家理解sys schema带来的实实在在的好处:最后讨论了sys schema还可以增加的内容. 1. sys schema的介绍 sys schema是MySQL 5.7.7中引入的一个系统库,包含了一系列视图.函数和存储过程, 该项目专注于MySQL的易

MySQL SYS CPU高的案例分析(一)

原文:MySQL SYS CPU高的案例分析(一) [现象] 最近关注MySQL CPU告警的问题时,发现有一种场景,有一些服务器最近都较频繁的出现CPU告警,其中的现象是 SYS CPU占比较高. 下面的截图来源于“MySQL CPU报警”采集的文件 [问题分析] 可以分析出这服务器CPU升高的原因是由于表的高并发写入引起.优化方案通常是通知开发停止写入或降低写入频率. 究竟是什么原因导致高并发写入时CPU sys的占比这么高. 从采集的[Perf Stat]指标看到CPU有大量消耗是集中ke

25.mysql中的常用工具

25.mysql中的常用工具25.1 mysql客户端连接工具跳转至mysql安装目录下的bincd C:\Program Files\MySQL\MySQL Server 5.7\binmac下cd /usr/local/Cellar/[email protected]/5.7.22/bincd /usr/local/mysql/bin mysql [选项] [database]; --连接数据库 use [dbname]; --进入要操作的数据库选项表达方式语法: “-”+选项单词的缩写字符

java springmvc mybaits maven shiro mysql 后台框架源码bootstrap

获取[下载地址]     [免费支持更新]三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] A 集成代码生成器 [正反双向(单表.主表.明细表.树形表,开发利器)+快速构建表单; freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块B 集成阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.

java springmvc mybaits maven shiro mysql 后台框架

获取[下载地址]   QQ: 313596790A 调用摄像头拍照,自定义裁剪编辑头像 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单;  技术:313596790 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩

mybaits maven shiro mysql 后台框架源码bootstrap

1. 导出 导入 excel 文件2  导出word文件3. IO 流上传下载文件4. 群发邮件,可以发html.纯文本格式,可以发给任意邮箱(实现批量发送广告邮件)5. 群发or单独 发送短信,支持两种第三方短信商接口6. spring   aop  事物处理7. 代码生成器 (freemarker), 代码 zip 压缩打包8. MD5加密 SHA加密(登录密码用此加密)接口加密身份校验9. 数据库连接池  阿里的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势,支持

Tengine2.1.0 + php5.5.25 + Mysql 5.5.42 安装

安装Tengine #yum安装pcre库yum install pcre-devel openssl openssl-devel zlib -y #创建运行账号useradd -s /sbin/nologin -M www #下载并安装wget http://tengine.taobao.org/download/tengine-2.1.0.tar.gztar zxf tengine-2.1.0.tar.gzcd tengine-2.1.0./configure --prefix=/apps/

Python接口测试之对MySQL/unittest框架/Requests 的操作

单元测试支持测试自动化. 共享的安装程序和关闭代码测试. 聚合成集合,测试和报告框架从测试的独立性.单元测试模块提供可以很容易地支持这些素质的一组测试的类.关于unittest 测试框架建议可以到官方查看详细的说明以及演示的实例.unittest各个模块的关系为: #!/usr/bin/env python #coding:utf-8 import unittest class TestDiv(unittest.TestCase): def setUp(self): pass def tearD