26章MySQL系统架构

目录

26.1先决条件使用SYS模式
26.2使用SYS模式
26.3系统架构的进展报告
26.4系统架构对象参考
26.4.1系统架构对象索引
26.4.2 sys模式表和触发器
26.4.3系统架构视图
26.4.4系统架构的存储过程
26.4.5 sys模式存储功能

MySQL 8包括sys图式,一组对象,可以帮助数据库管理员和开发人员的绩效模式采集数据的解释。sys模式对象可用于典型的调谐和诊断的使用案例。在这一模式对象包括:

新安装的sys模式是默认安装目录中如果你使用数据初始化mysqld--initialize--initialize-insecure选项如果这不是你想要的,你可以sys模式手动初始化后如果是不必要的。

mysql_upgrade返回一个错误如果sys图式的存在,但没有version看来,在假设这一观点没有表示用户创建系统图式。在这种情况下升级,删除或重命名现有的sys图式首先

sys模式对象有一个定义者属于'mysql.sys'@'localhost'。使用专用的mysql.sys避免发生的问题,如果一个帐户重命名或删除管理员root账户

26.1先决条件使用SYS模式

使用前sys图式,本节所述的先决条件必须满足。

因为sys架构提供了访问性能架构的一种方式,性能架构必须启用的sys模式工作。看到25.3节,“性能模式启动配置”

全面进入sys模式,用户必须拥有这些特权:

还需要对潜在的对象权限sys模式对象:

某些性能架构工具和消费者必须启用(仪器)时间充分利用sys图式的能力:

  • 全部wait仪器

  • 全部stage仪器

  • 全部statement仪器

  • xxx_currentxxx_history_long消费者for all events

你可以使用sys图式本身使所有的额外的工具和消费者:

呼叫系统。ps_setup_enable_instrument(等待');呼叫系统。ps_setup_enable_instrument('stage ');呼叫系统。ps_setup_enable_instrument(表”);呼叫系统。ps_setup_enable_consumer(当前的);呼叫系统。ps_setup_enable_consumer('history_long”);
笔记

对许多用途sys模式,默认模式是足够的性能数据收集。使所有的仪器和消费者只是提到有影响,因此最好只启用额外的配置,你需要。同时,记住,如果您启用额外的配置,你可以很容易的恢复默认配置,这样:

呼叫系统。ps_setup_reset_to_default(真的);

26.2使用SYS模式

你能做的sys架构的默认模式,引用的对象不具备架构名称:

MySQL的>USE sys;数据库changedmysql >SELECT * FROM version;------------- --------------------- | sys_version | mysql_version | ------------- --------------------- | 1.6.0 | 8.0.2-dmr-debug-log | ------------- ---------------------

(Theversion视图显示sys图式和MySQL服务器版本。)

访问sys而另一个模式是默认的对象的架构(或仅仅是显式的),与架构名称限定对象的引用:

MySQL的>SELECT * FROM sys.version;------------- --------------------- | sys_version | mysql_version | ------------- --------------------- | 1.6.0 | 8.0.2-dmr-debug-log | ------------- ---------------------

在这一章中的例子通常假设sys作为默认架构

这个sys架构包含很多观点,总结各种方法的性能模式表。这些意见大多成对出现,这样对一个成员的名字和其他成员一样,加上X美元前缀。For example,thehost_summary_by_file_io观点总结文件I / O按主机和显示器的延迟转换从皮秒到更具可读性值(单位);

MySQL的>SELECT * FROM host_summary_by_file_io;------------ ------- ------------ |主机| iOS | io_latency | ------------ ------- ------------ | localhost | 67570 | 5.38 | |背景| 3468 | 4.18 | ------------ ------- ------------

这个x$host_summary_by_file_io观点总结了相同的数据,但显示未格式化的皮秒时间:

MySQL的>SELECT * FROM x$host_summary_by_file_io;------------ ------- --------------- |主机| iOS | io_latency | ------------ ------- --------------- | localhost | 67574 | 5380678125144 | |背景| 3474 | 4758696829416 | ------------ ------- ---------------

没有视图x$前缀是为了提供输出,更友好,人类容易阅读的用户。与视图X美元前缀显示相同的值在原始形式的目的是更多的使用与其他执行自己的处理数据的工具。约之间的无差异的附加信息—x$X美元的意见,看第26.4.3,“系统架构视图”

检查sys模式对象的定义,使用适当的SHOW声明或INFORMATION_SCHEMA查询。例如,要检查的定义sessionformat_bytes()功能,使用这些语句:

MySQL的>SHOW CREATE VIEW session;MySQL的>SHOW CREATE FUNCTION format_bytes;

然而,这些声明显示在相对未格式化的形式定义。与更多的可读格式的视图对象定义访问个人.sql从现有的文件sys架构开发的网站http:/ / / / github.com MySQL MySQL系统

既不mysqldump也没有mysqlpump转储sys模式默认。生成转储文件,名字sys方案明确在命令行上使用这些命令:

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

重装模式从转储文件,使用此命令:

mysql < sys_dump.sql

26.3系统架构的进展报告

以下sys架构视图提供长期的交易报告进展:

processlistsessionx processlistx美元$ SESSION

假设所需的工具和消费者都启用,该progress这些意见一栏显示的百分比的工作完成阶段,支持进度报告。

阶段进度报告的要求events_stages_current消费者被启用,以及仪器的进展信息要求。这些阶段的工具目前支持进度报告:

阶段/ SQL /复制到TMP tablestage / InnoDB /修改表(结束)阶段/ InnoDB /修改表(冲洗)阶段/ InnoDB /修改表(插入)阶段/ InnoDB /修改表(log应用指数)阶段/ InnoDB /修改表(日志申请表)阶段/ InnoDB /修改表(合并排序)阶段/ InnoDB /修改表(读PK和内部排序)阶段/ InnoDB缓冲池的负荷/

阶段不支持估计完成工作报告,或者如果需要的工具或消费者不启用的progress无效的

26.4系统架构对象参考

这个sys模式包括表、触发器、视图、存储过程和函数。下面的部分为这些对象提供细节。

26.4.1系统架构对象索引

下表列出sys模式对象和提供每一个简短的描述。

表26.1系统架构的表和触发器

表或Trigger Name描述
sys_configsys模式配置选项
sys_config_insert_set_usersys_config插入触发器
sys_config_update_set_usersys_config更新触发器

表26.2系统架构视图

视图名称描述
host_summaryx$host_summary声明活动,文件I/O,和连接,按主机
host_summary_by_file_iox$host_summary_by_file_io文件I/O,按主机
host_summary_by_file_io_typex$host_summary_by_file_io_type文件I / O,由主机和类型分组
host_summary_by_stagesx$host_summary_by_stages陈述阶段,按主机
host_summary_by_statement_latencyx$host_summary_by_statement_latency报表统计,按主机
host_summary_by_statement_typex$host_summary_by_statement_type语句执行,由宿主和语句分组
innodb_buffer_stats_by_schemax$innodb_buffer_stats_by_schemaInnoDB缓冲区信息,按图示
innodb_buffer_stats_by_tablex$innodb_buffer_stats_by_tableInnoDB缓冲区的信息,通过架构和表分组
innodb_lock_waitsx$innodb_lock_waitsInnoDB锁定信息
io_by_thread_by_latencyx$io_by_thread_by_latencyI / O的消费者,按螺纹
io_global_by_file_by_bytesx$io_global_by_file_by_bytes全球的I / O的消费者,通过文件和字节分组
io_global_by_file_by_latencyx$io_global_by_file_by_latency全球的I / O的消费者,通过文件和延迟分组
io_global_by_wait_by_bytesx$io_global_by_wait_by_bytes全球的I / O的消费者,按字节
io_global_by_wait_by_latencyx$io_global_by_wait_by_latency全球的I / O的消费者,分组延迟
latest_file_iox$latest_file_io最新的I/O、文件和线程分组
memory_by_host_by_current_bytesx$memory_by_host_by_current_bytes内存的使用,按主机
memory_by_thread_by_current_bytesx$memory_by_thread_by_current_bytes内存的使用,按螺纹
memory_by_user_by_current_bytesx$memory_by_user_by_current_bytes内存的使用,按用户
memory_global_by_current_bytesx$memory_global_by_current_bytes内存的使用,通过配置类型分组
memory_global_totalx$memory_global_total总的内存使用
metrics服务器指标
processlistx$processlist列表信息
ps_check_lost_instrumentation失去了工具变量
schema_auto_increment_columnsAUTO_INCREMENT列信息
schema_index_statisticsx$schema_index_statistics指标统计
schema_object_overview在每个模式的对象类型
schema_redundant_indexes重复或冗余指标
schema_table_lock_waitsx$schema_table_lock_waits会话等元数据锁
schema_table_statisticsx$schema_table_statistics统计表
schema_table_statistics_with_bufferx$schema_table_statistics_with_buffer统计表,包括InnoDB缓冲池数据
schema_tables_with_full_table_scansx$schema_tables_with_full_table_scans表访问全扫描
schema_unused_indexes指标不主动使用
sessionx$session用户会话列表信息
session_ssl_status联接SSL信息
statement_analysisx$statement_analysis报表汇总统计
statements_with_errors_or_warningsx$statements_with_errors_or_warnings产生错误或警告的语句
statements_with_full_table_scansx$statements_with_full_table_scans全表扫描,所做的陈述
statements_with_runtimes_in_95th_percentilex$statements_with_runtimes_in_95th_percentile最高的平均运行报表
statements_with_sortingx$statements_with_sorting报表进行分类
statements_with_temp_tablesx$statements_with_temp_tables使用临时表的语句
user_summaryx$user_summary用户声明和连接活动
user_summary_by_file_iox$user_summary_by_file_io文件I/O,按用户
user_summary_by_file_io_typex$user_summary_by_file_io_type文件I / O,分组的用户和事件
user_summary_by_stagesx$user_summary_by_stages阶段事件,按用户
user_summary_by_statement_latencyx$user_summary_by_statement_latency报表统计,按用户
user_summary_by_statement_typex$user_summary_by_statement_type语句执行,由用户和语句分组
version电流sys图式和MySQL服务器版本
wait_classes_global_by_avg_latencyx$wait_classes_global_by_avg_latency等类的平均潜伏期,通过事件类分组
wait_classes_global_by_latencyx$wait_classes_global_by_latency等类的总延迟,通过事件类分组
waits_by_host_by_latencyx$waits_by_host_by_latency等待事件,由宿主和事件分组
waits_by_user_by_latencyx$waits_by_user_by_latencyWait Events,Gooped by user and event
waits_global_by_latencyx$waits_global_by_latency等待事件,按事件
x$ps_digest_95th_percentile_by_avg_us第九十五百分位的观点辅助视图
x$ps_digest_avg_latency_distribution第九十五百分位的观点辅助视图
x$ps_schema_table_statistics_io表格统计视图辅助视图
x$schema_flattened_keys辅助视图schema_redundant_indexes

表26.3系统架构的存储过程

程序名称描述
create_synonym_db()创建同义词模式
diagnostics()诊断信息收集系统
execute_prepared_stmt()执行准备好的语句
ps_setup_disable_background_threads()禁用后台线程仪器
ps_setup_disable_consumer()禁用消费者
ps_setup_disable_instrument()禁用工具
ps_setup_disable_thread()禁用仪表螺纹
ps_setup_enable_background_threads()使背景线程仪器
ps_setup_enable_consumer()使消费者
ps_setup_enable_instrument()使仪器
ps_setup_enable_thread()使仪器的线
ps_setup_reload_saved()加载保存性能模式配置
ps_setup_reset_to_default()重置保存性能模式配置
ps_setup_save()保存性能模式配置
ps_setup_show_disabled()显示禁用的性能模式配置
ps_setup_show_disabled_consumers()显示禁用的性能模式消费者
ps_setup_show_disabled_instruments()显示禁用的性能架构工具
ps_setup_show_enabled()显示启用性能模式配置
ps_setup_show_enabled_consumers()显示启用性能模式消费者
ps_setup_show_enabled_instruments()显示功能的性能架构工具
ps_statement_avg_latency_histogram()显示语句延迟直方图
ps_trace_statement_digest()消化跟踪性能架构仪器
ps_trace_thread()性能数据的线程转储模式
ps_truncate_all_tables()截断性能模式汇总表
statement_performance_analyzer()报表服务器正在运行报告
table_exists()一个表是否存在

表26.4系统架构存储功能

函数名描述
extract_schema_from_file_name()从文件路径名提取模式名称
extract_table_from_file_name()从文件路径名提取表名称
format_bytes()将字节值值单位
format_path()代替符号值数据和临时文件的目录的路径名
format_statement()截断长的语句长度固定
format_time()转换价值和单位价值皮秒
list_add()将项添加到列表
list_drop()从列表中删除项目
ps_is_account_enabled()检查是否启用帐户仪表
ps_is_consumer_enabled()检查是否启用了消费者
ps_is_instrument_default_enabled()检查是否启用仪
ps_is_instrument_default_timed()检查是否是计时仪器
ps_is_thread_instrumented()检查螺纹检测
ps_thread_account()返回线程ID帐户
ps_thread_id()连接ID返回线程ID
ps_thread_stack()线程ID返回事件信息
ps_thread_trx_info()线程ID返回交易信息
quote_identifier()返回字符串引用标识符
sys_get_config()退货sys模式配置选项
version_major()MySQL服务器的主版本号
version_minor()MySQL服务器的次要版本号
version_patch()MySQL服务器的补丁发布版本号

26.4.2 sys模式表和触发器

以下各节描述sys模式表和触发器

26.4.2.1的sys_config表

这个表格包含sys模式配置选项,每个选项一行。配置修改更新本表坚持在客户端会话和服务器重新启动。

这个sys_config这些列的表:

  • variable

    配置选项

  • value

    the配置选项值

  • set_time

    最新修改的行的时间戳。

  • set_by

    让最新修改的行的账户。的价值NULL如果行没有改变自sys安装模式

作为一种有效的措施来减少直接读取数从sys_config表,sys图式的功能,使用价值从这个表检查用户定义的变量与相应的名称,这是用户定义的变量具有相同的名字加上“缝合前缀.(例如,对应的变量diagnostics.include_raw选项@sys.diagnostics.include_raw。)如果用户定义的变量存在于当前会话和是非—NULL,功能使用价值优先的价值sys_config表否则,该函数读取和使用的值从表。在后一种情况下,调用函数通常也设置了相应的用户定义的变量的值,再引用到配置选项在同一会话中使用的变量,不需要再次读表。

例如,在statement_truncate_len选项控制语句返回的最大长度format_statement()功能。默认值是64。暂时改变值32为当前会话,设置相应的@sys.statement_truncate_len用户定义的变量:

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 |
+-----------------------------------+

称之为format_statement()在会议上继续使用用户定义的变量的值(32),而不是存储在表中的值(64)。

停止使用用户定义的变量和恢复使用表格中的值,设置变量NULL在您的会话:

MySQL的&#62;SET @sys.statement_truncate_len = NULL;MySQL的&#62;SELECT format_statement(@stmt);---------------------------------------------------------- | format_statement(@ STMT)| ---------------------------------------------------------- |选择变量值,set_time,set_by从sys_config | ----------------------------------------------------------

另外,结束当前会话(引起用户定义的变量不再存在),开始一个新的会话。

刚才描述的选项之间的传统关系sys_config表和用户定义的变量可以用来制作结束时,您的会话结束临时配置的变化。然而,如果你设置一个用户定义的变量,然后修改相应表的值在同一个会话,改变表的值将不会被使用在会话只要用户定义的变量与非存在—无效的价值。(改变表的价值可用于其他会议,没有定义的变量分配。)

The following the Options in the list描述sys_config表和相应的用户定义的变量:

  • diagnostics.allow_i_s_tables@sys.diagnostics.allow_i_s_tables

    如果这个选项是ON,的diagnostics()程序是允许在执行表扫描INFORMATION_SCHEMA.TABLES表这可以有很多桌子是昂贵的。默认值是关闭

  • diagnostics.include_raw@sys.diagnostics.include_raw

    如果这个选项是ON,的diagnostics()程序包括原输出查询metrics意见默认值是关闭

  • ps_thread_trx_info.max_length@sys.ps_thread_trx_info.max_length

    JSON输出产生的最大长度ps_thread_trx_info()功能。默认值是65535。

  • statement_performance_analyzer.limit@sys.statement_performance_analyzer.limit

    最大行数返回,没有内置的限制的观点。(例如,在statements_with_runtimes_in_95th_percentile看来在这个意义上,它只返回内置限制在百分第九十五的执行时间平均语句。)默认是100。

  • statement_performance_analyzer.view@sys.statement_performance_analyzer.view

    自定义查询或视图中可以使用的statement_performance_analyzer()程序(这本身就是调用的diagnostics()程序)。如果选项值包含一个空间,它被解释为一个查询。否则,它必须是一个已经存在的视图,查询的性能架构的名称events_statements_summary_by_digest表不能有任何极限条款的查询或视图的定义如果statement_performance_analyzer.limit配置选项大于0。默认值是无效的(没有定义的自定义视图)。

  • statement_truncate_len@sys.statement_truncate_len

    在返回语句的最大长度format_statement()功能。较长的语句截断长度。默认值是64。

其他的选项可以添加到sys_config表例如,在diagnostics()execute_prepared_stmt()程序使用调试选项,如果它存在,但是这个选项不是部分的sys_config表默认情况下启用因为调试输出通常只是暂时的,通过设置相应的“sys.debug用户定义的变量。启用调试输出无需设置单独的会话变量,添加选项表:

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

改变中的调试表设置,做了两件事。首先,修改表本身的价值:

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

其次,要保证程序调用在当前会话中使用改变的值从表中设置相应的用户定义的变量NULL

MySQL的&#62;SET @sys.debug = NULL;

26.4.2.2的sys_config_insert_set_user触发

行添加到sys_config插入报表的sys_config_insert_set_user触发设置set_by列为当前用户

26.4.2.3的sys_config_update_set_user触发

这个sys_config_update_set_user触发的sys_config表是类似的sys_config_insert_set_user触发,但UPDATE声明.

26.4.3系统架构视图

26.4.3.1的host_summary和X host_summary美元的看法
26.4.3.2的host_summary_by_file_io和X host_summary_by_file_io美元的看法
26.4.3.3的host_summary_by_file_io_type和X host_summary_by_file_io_type美元的看法
26.4.3.4的host_summary_by_stages和X host_summary_by_stages美元的看法
26.4.3.5的host_summary_by_statement_latency和X host_summary_by_statement_latency美元的看法
26.4.3.6的host_summary_by_statement_type和X host_summary_by_statement_type美元的看法
26.4.3.7的innodb_buffer_stats_by_schema和X innodb_buffer_stats_by_schema美元的看法
26.4.3.8的innodb_buffer_stats_by_table和X innodb_buffer_stats_by_table美元的看法
26.4.3.9的innodb_lock_waits和X innodb_lock_waits美元的看法
26.4.3.10的io_by_thread_by_latency和X io_by_thread_by_latency美元的看法
26.4.3.11的io_global_by_file_by_bytes和X io_global_by_file_by_bytes美元的看法
26.4.3.12的io_global_by_file_by_latency和X io_global_by_file_by_latency美元的看法
26.4.3.13的io_global_by_wait_by_bytes和X io_global_by_wait_by_bytes美元的看法
26.4.3.14的io_global_by_wait_by_latency和X io_global_by_wait_by_latency美元的看法
26.4.3.15的latest_file_io和X latest_file_io美元的看法
26.4.3.16的memory_by_host_by_current_bytes和X memory_by_host_by_current_bytes美元的看法
26.4.3.17的memory_by_thread_by_current_bytes和X memory_by_thread_by_current_bytes美元的看法
26.4.3.18的memory_by_user_by_current_bytes和X memory_by_user_by_current_bytes美元的看法
26.4.3.19的memory_global_by_current_bytes和X memory_global_by_current_bytes美元的看法
26.4.3.20的memory_global_total和X memory_global_total美元的看法
26.4.3.21度量观
26.4.3.22的列表和列表视图X美元
26.4.3.23的ps_check_lost_instrumentation观
26.4.3.24的schema_auto_increment_columns观
26.4.3.25的schema_index_statistics和X schema_index_statistics美元的看法
26.4.3.26的schema_object_overview观
26.4.3.27的schema_redundant_indexes和X schema_flattened_keys美元的看法
26.4.3.28的schema_table_lock_waits和X schema_table_lock_waits美元的看法
26.4.3.29的schema_table_statistics和X schema_table_statistics美元的看法
26.4.3.30的schema_table_statistics_with_buffer和X schema_table_statistics_with_buffer美元的看法
26.4.3.31的schema_tables_with_full_table_scans和X schema_tables_with_full_table_scans美元的看法
26.4.3.32的schema_unused_indexes观
26.4.3.33会话和X $ SESSION的看法
26.4.3.34的session_ssl_status观
26.4.3.35的statement_analysis和X statement_analysis美元的看法
26.4.3.36的statements_with_errors_or_warnings和X statements_with_errors_or_warnings美元的看法
26.4.3.37的statements_with_full_table_scans和X statements_with_full_table_scans美元的看法
26.4.3.38的statements_with_runtimes_in_95th_percentile和X statements_with_runtimes_in_95th_percentile美元的看法
26.4.3.39的statements_with_sorting和X statements_with_sorting美元的看法
26.4.3.40的statements_with_temp_tables和X statements_with_temp_tables美元的看法
26.4.3.41的user_summary和X user_summary美元的看法
26.4.3.42的user_summary_by_file_io和X user_summary_by_file_io美元的看法
26.4.3.43的user_summary_by_file_io_type和X user_summary_by_file_io_type美元的看法
26.4.3.44的user_summary_by_stages和X user_summary_by_stages美元的看法
26.4.3.45的user_summary_by_statement_latency和X user_summary_by_statement_latency美元的看法
26.4.3.46的user_summary_by_statement_type和X user_summary_by_statement_type美元的看法
26.4.3.47版本视图
26.4.3.48的wait_classes_global_by_avg_latency和X wait_classes_global_by_avg_latency美元的看法
26.4.3.49的wait_classes_global_by_latency和X wait_classes_global_by_latencyviews美元
26.4.3.50的waits_by_host_by_latency和X waits_by_host_by_latency美元的看法
26.4.3.51的waits_by_user_by_latency和X waits_by_user_by_latency美元的看法
26.4.3.52的waits_global_by_latency和X waits_global_by_latency美元的看法

以下各节描述sys架构视图

这个sys架构包含很多观点,总结各种方法的性能模式表。这些意见大多成对出现,这样对一个成员的名字和其他成员一样,加上X美元前缀.例如,在host_summary_by_file_io观点总结文件I / O按主机和显示器的延迟转换从皮秒到更具可读性值(单位);

MySQL的&#62;SELECT * FROM host_summary_by_file_io;------------ ------- ------------ |主机| iOS | io_latency | ------------ ------- ------------ | localhost | 67570 | 5.38 | |背景| 3468 | 4.18 | ------------ ------- ------------

这个x$host_summary_by_file_io观点总结了相同的数据,但显示未格式化的皮秒时间:

MySQL的&#62;SELECT * FROM x$host_summary_by_file_io;------------ ------- --------------- |主机| iOS | io_latency | ------------ ------- --------------- | localhost | 67574 | 5380678125144 | |背景| 3474 | 4758696829416 | ------------ ------- ---------------

没有视图x$前缀是为了提供输出,更用户友好和易于阅读。与视图X美元前缀显示相同的值在原始形式的目的是更多的使用与其他执行自己的处理数据的工具。

意见不x$前缀字符X美元在这些方面的看法:

26.4.3.1的host_summary和X host_summary美元的看法

这些观点总结陈述活动,文件I/O,和连接,按主机。

这个host_summaryx$host_summary观点,这些列:

  • host

    主机的客户端连接。行,HOST在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • statements

    为举办报表总数

  • statement_latency

    定时报表主机的总等待时间。

  • statement_avg_latency

    平均等待时间每定时声明为主机。

  • table_scans

    表总数扫描主机

  • file_ios

    文件I/O事件的主机总数。

  • file_io_latency

    为主机定时文件I/O事件的总等待时间。

  • current_connections

    目前的主机的连接数

  • total_connections

    对主机的连接总数

  • unique_users

    为主机的不同用户数

  • current_memory

    当期分配的内存的主机。

  • total_memory_allocated

    总量分配的内存的主机。

26.4.3.2的host_summary_by_file_io和X host_summary_by_file_io美元的看法

这些观点总结文件I/O,按主机。默认情况下,行降总文件I/O延迟排序。

这个host_summary_by_file_iox$host_summary_by_file_io观点,这些列:

  • host

    主机的客户端连接。行,HOST在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • ios

    文件I/O事件的主机总数。

  • io_latency

    为主机定时文件I/O事件的总等待时间。

26.4.3.3的host_summary_by_file_io_type和X host_summary_by_file_io_typeviews美元

这些观点总结文件I/O,按主机和事件类型。默认情况下,行按主机降总I/O延迟。

这个host_summary_by_file_io_typex$host_summary_by_file_io_type观点,这些列:

  • host

    主机的客户端连接。行,HOST在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • event_name

    的I / O事件的文件的名称。

  • total

    总数量的文件出现的I/O事件的主机。

  • total_latency

    总等待时间的定时事件的文件I/O事件的主机。

  • max_latency

    最大等待时间定时出现的文件I/O事件的主机。

26.4.3.4的host_summary_by_stages和X host_summary_by_stages美元的看法

这些观点的总结陈词阶段,按主机。默认情况下,行排序由宿主和下降的总延迟时间。

这个host_summary_by_stagesx$host_summary_by_stages观点,这些列:

  • host

    主机的客户端连接。行,HOST在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • event_name

    阶段活动名称

  • total

    对主舞台事件发生总数。

  • total_latency

    定时出现的主舞台事件的总等待时间。

  • avg_latency

    按时间发生的主舞台事件的平均等待时间。

26.4.3.5的host_summary_by_statement_latency和host_summary_by_statement_latency美元的看法

这些观点总结报表统计,按主机。默认情况下,行降总延迟时间排序。

这个host_summary_by_statement_latencyx$host_summary_by_statement_latency观点,这些列:

  • host

    主机的客户端连接。行,HOST在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • total

    为举办报表总数

  • total_latency

    定时报表主机的总等待时间。

  • max_latency

    定时报表主机最大等待时间。

  • lock_latency

    总的时间等待定时报表主机锁。

  • rows_sent

    通过对宿主语句返回的行数。

  • rows_examined

    行由主持人陈述从存储引擎读取总数。

  • rows_affected

    通过对宿主语句影响的行数。

  • full_scans

    全表扫描的主机报表总数。

26.4.3.6的host_summary_by_statement_type和X host_summary_by_statement_typeviews美元

这些观点总结报表执行信息,按主机和语句类型。默认情况下,行排序由宿主和下降的总延迟时间。

这个host_summary_by_statement_typex$host_summary_by_statement_type观点,这些列:

  • host

    主机的客户端连接。行,HOST在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • statement

    声明的事件名称的最后部分。

  • total

    对主持人的陈述事件发生总数。

  • total_latency

    定时出现的主机声明事件的总等待时间。

  • max_latency

    定时出现的主机声明事件的最大等待时间。

  • lock_latency

    总的时间等待定时出现的主机声明事件锁。

  • rows_sent

    通过对宿主的语句返回的行数的事件发生。

  • rows_examined

    行通过对宿主的语句事件事件的存储引擎读取总数。

  • rows_affected

    通过对宿主的声明事件发生影响的行数。

  • full_scans

    全表扫描的主机声明事件发生总数。

26.4.3.7的innodb_buffer_stats_by_schema和X innodb_buffer_stats_by_schemaviews美元

这些观点总结的信息INFORMATION_SCHEMAINNODB_BUFFER_PAGE表,按图式。默认情况下,行由下行缓冲大小排序。

警告

查询视图访问INNODB_BUFFER_PAGE表格会影响性能。不查询这些视图在一个生产系统,除非你是知道的性能影响和决定了它是可以接受的。为了避免性能对生产系统的影响,再现你要调查和查询的一个测试实例缓冲池的统计问题。

这个innodb_buffer_stats_by_schemax$innodb_buffer_stats_by_schema观点,这些列:

  • object_schema

    该对象的架构名称,或InnoDB System如果该表属于InnoDB存储引擎

  • allocated

    分配方案的总字节数

  • data

    数据分配的字节总数的图式。

  • pages

    分配方案的总页数

  • pages_hashed

    散列页分配模式的总数。

  • pages_old

    旧的页面分配模式的总数。

  • rows_cached

    该架构的缓存行的总数。

26.4.3.8的innodb_buffer_stats_by_table和X innodb_buffer_stats_by_tableviews美元

这些观点总结的信息INFORMATION_SCHEMAINNODB_BUFFER_PAGE表的架构和表分组。默认情况下,行由下行缓冲大小排序。

警告

查询视图访问INNODB_BUFFER_PAGE表格会影响性能。不查询这些视图在一个生产系统,除非你是知道的性能影响和决定了它是可以接受的。为了避免性能对生产系统的影响,再现你要调查和查询的一个测试实例缓冲池的统计问题。

这个innodb_buffer_stats_by_tablex$innodb_buffer_stats_by_table观点,这些列:

  • object_schema

    该对象的架构名称,或InnoDB System如果该表属于InnoDB存储引擎

  • object_name

    表名

  • allocated

    The total number of Bytes alocated for the table .

  • data

    《allocated字节数的数据的表。

  • pages

    分配给表的总页数

  • pages_hashed

    哈希页表的分配数量

  • pages_old

    《老allocated数页的表。

  • rows_cached

    为表中的行数

26.4.3.9的innodb_lock_waits和X innodb_lock_waits美元的看法

这些观点总结InnoDB锁的事务正在等待。默认情况下,行降锁年龄分类。

这个innodb_lock_waitsx$innodb_lock_waits观点,这些列:

  • wait_started

    时间的等待开始

  • wait_age

    锁等了多久了,作为一个TIME价值

  • wait_age_secs

    锁等了多久了,在几秒钟内。

  • locked_table_schema

    包含锁表的架构

  • locked_table_name

    The name of the Locked table .

  • locked_table_partition

    锁定的分区的名称,如;NULL否则

  • locked_table_subpartition

    锁定的子分区的名称,如;NULL否则

  • locked_index

    该锁定索引的名称

  • locked_type

    《等待锁的类型

  • waiting_trx_id

    该等交易的ID

  • waiting_trx_started

    时间在等待交易开始

  • waiting_trx_age

    等待交易等多久了,作为一个TIME价值

  • waiting_trx_rows_locked

    行的交易数量等锁

  • waiting_trx_rows_modified

    行的交易数量等改性

  • waiting_pid

    该等交易的列表的ID。

  • waiting_query

    声明说,正在等待锁

  • waiting_lock_id

    在等待锁的ID

  • waiting_lock_mode

    在锁定模式

  • blocking_trx_id

    这是阻塞等待锁的事务ID。

  • blocking_pid

    阻塞的事务列表ID

  • blocking_query

    声明阻塞事务执行。这场报告如果发出阻塞查询空闲会话无效。有关更多信息,参见识别卡查询发行后的会话空闲

  • blocking_lock_id

    该锁,阻塞等待锁的ID。

  • blocking_lock_mode

    该锁,阻塞等待锁模式。

  • blocking_trx_started

    时间的阻塞事务开始

  • blocking_trx_age

    阻塞事务被执行多长时间了,作为一个TIME价值

  • blocking_trx_rows_locked

    行由阻塞事务锁的数量。

  • blocking_trx_rows_modified

    行由阻塞事务修改数

  • sql_kill_blocking_query

    这个KILL语句执行杀死阻塞语句。

  • sql_kill_blocking_connection

    这个KILL语句执行杀死会话运行阻塞语句。

26.4.3.10的io_by_thread_by_latency和X io_by_thread_by_latency美元的看法

这些观点总结的I / O消费者显示等待I/O时间,按螺纹。默认情况下,行降总I/O延迟排序。

这个io_by_thread_by_latencyx$io_by_thread_by_latency观点,这些列:

  • user

    前台线程与线程关联的帐户。后台线程,线程的名字。

  • total

    总数量的I/O事件的线程。

  • total_latency

    总等待时间定时I/O线程事件。

  • min_latency

    最小单等待时间定时I/O线程事件。

  • avg_latency

    平均等待时间每定时I/O线程事件。

  • max_latency

    最大等待时间定时I/O线程事件。

  • thread_id

    线程ID

  • processlist_id

    前台线程,线程的ID的列表。后台线程,NULL

26.4.3.11的io_global_by_file_by_bytes和X io_global_by_file_by_bytes美元的看法

这些观点总结全球I/O消费者显示I/O量,按文件。默认情况下,行降总I/O排序(字节读写)。

这个io_global_by_file_by_bytesx$io_global_by_file_by_bytes观点,这些列:

  • file

    文件的路径名

  • count_read

    对文件的读事件总数

  • total_read

    从文件中读取的字节总数。

  • avg_read

    从文件中读取的字节数的平均数。

  • count_write

    总批写事件的文件

  • total_written

    写入文件的总字节数

  • avg_write

    平均每字节数写入文件。

  • total

    读取的字节数和文件的编写。

  • write_pct

    总字节的I / O,百分比写道。

26.4.3.12的io_global_by_file_by_latency和X io_global_by_file_by_latencyviews美元

这些观点总结全球I/O消费者显示等待I/O时间,按文件。默认情况下,行降总延迟时间排序。

这个io_global_by_file_by_latencyx$io_global_by_file_by_latency观点,这些列:

  • file

    文件的路径名

  • total

    the total number of I / O events for the file。

  • total_latency

    等待时间的总时间的I / O事件的文件。

  • count_read

    阅读总数量的I/O事件的文件。

  • read_latency

    总等待时间定时读取I/O文件事件。

  • count_write

    总数写I/O的文件事件。

  • write_latency

    定时的总等待时间写I/O的文件事件。

  • count_misc

    the total number of other I / O events for the file。

  • misc_latency

    文件的定时其他I/O事件的总等待时间。

26.4.3.13的io_global_by_wait_by_bytes和X io_global_by_wait_by_bytes美元的看法

这些观点总结全球I/O消费者显示I/O量和时间等待I/O,按事件。默认情况下,行降总I/O排序(字节读写)。

这个io_global_by_wait_by_bytesx$io_global_by_wait_by_bytes观点,这些列:

  • event_name

    I/O事件名称,与wait/io/file/前缀剥离

  • total

    对I/O事件发生总数。

  • total_latency

    定时出现的I/O事件的总等待时间。

  • min_latency

    最小单等待时间定时出现的I/O事件。

  • avg_latency

    每时发生I/O事件的平均等待时间。

  • max_latency

    定时出现的I/O事件最大等待时间。

  • count_read

    对I/O事件读请求数。

  • total_read

    读取的字节的I/O事件数。

  • avg_read

    对于I/O事件的字节数平均每读。

  • count_write

    对于I/O事件写入请求的数量。

  • total_written

    对I/O事件写入的字节数。

  • avg_written

    对于I/O事件写的字节数的平均数。

  • total_requested

    读取的字节总数为I/O事件写。

26.4.3.14的io_global_by_wait_by_latency和X io_global_by_wait_by_latencyviews美元

这些观点总结全球I/O消费者显示I/O量和时间等待I/O,按事件。默认情况下,行降总延迟时间排序。

这个io_global_by_wait_by_latencyx$io_global_by_wait_by_latency观点,这些列:

  • event_name

    I/O事件名称,与wait/io/file/前缀剥离

  • total

    对I/O事件发生总数。

  • total_latency

    定时出现的I/O事件的总等待时间。

  • avg_latency

    每时发生I/O事件的平均等待时间。

  • max_latency

    定时出现的I/O事件最大等待时间。

  • read_latency

    定时阅读出现的I/O事件的总等待时间。

  • write_latency

    定时写I/O事件发生的总等待时间。

  • misc_latency

    定时的其他事件的I/O事件的总等待时间。

  • count_read

    对I/O事件读请求数。

  • total_read

    读取的字节的I/O事件数。

  • avg_read

    对于I/O事件的字节数平均每读。

  • count_write

    对于I/O事件写入请求的数量。

  • total_written

    对I/O事件写入的字节数。

  • avg_written

    对于I/O事件写的字节数的平均数。

26.4.3.15的latest_file_io和X latest_file_io美元的看法

这些观点总结文件I/O活动,通过文件和线程分组。默认情况下,行排序与最近的I / O第一。

这个latest_file_iox$latest_file_io观点,这些列:

  • thread

    前台线程与线程关联的帐户,(和端口号的TCP / IP连接)。后台线程,线程和线程ID名称

  • file

    文件的路径名

  • latency

    文件的I/O事件的等待时间。

  • operation

    《外科术式

  • requested

    the number of bytes for the requested日期文件I/O事件。

26.4.3.16的memory_by_host_by_current_bytes和memory_by_host_by_current_bytes美元的看法

这些观点总结的内存使用,按主机。默认情况下,行排序的内存使用量下降。

这个memory_by_host_by_current_bytesx$memory_by_host_by_current_bytes观点,这些列:

  • host

    主机的客户端连接。行,HOST在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • current_count_used

    当前分配的内存块,没有被释放,而主机号。

  • current_allocated

    当前分配的字节没有被释放,而主机号。

  • current_avg_alloc

    为主机分配的内存块的当前数目的字节数。

  • current_max_alloc

    最大电流分配的内存字节为主机。

  • total_allocated

    在主机中的总字节的内存分配。

26.4.3.17的memory_by_thread_by_current_bytes和memory_by_thread_by_current_bytes美元的看法

这些观点总结的内存使用,按螺纹。默认情况下,行排序的内存使用量下降。

这个memory_by_thread_by_current_bytesx$memory_by_thread_by_current_bytes观点,这些列:

  • thread_id

    线程ID

  • user

    线程或线程用户名称

  • current_count_used

    当前分配的内存块,没有被释放,但线程数。

  • current_allocated

    当前分配的字节没有被释放,但线程数。

  • current_avg_alloc

    为线程分配内存块的当前数目的字节数。

  • current_max_alloc

    最大电流分配内存以字节为单位的螺纹。

  • total_allocated

    对于线程的总字节的内存分配。

26.4.3.18的memory_by_user_by_current_bytes和memory_by_user_by_current_bytes美元的看法

这些观点总结的内存使用,按用户。默认情况下,行排序的内存使用量下降。

这个memory_by_user_by_current_bytesx$memory_by_user_by_current_bytes观点,这些列:

  • user

    客户端的用户名。行,USER在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • current_count_used

    当前分配的内存块,没有被释放,但用户数。

  • current_allocated

    当前分配的字节没有被释放,但用户数。

  • current_avg_alloc

    为用户分配的内存块的当前数目的字节数。

  • current_max_alloc

    最大电流分配内存的字节的用户。

  • total_allocated

    对于用户的总字节的内存分配。

26.4.3.19的memory_global_by_current_bytes和X memory_global_by_current_bytesviews美元

这些观点总结的内存使用,通过配置类型分组(即事件)。默认情况下,行排序的内存使用量下降。

这个memory_global_by_current_bytesx$memory_global_by_current_bytes观点,这些列:

  • event_name

    “记忆事件的名称

  • current_count

    对事件发生的总数

  • current_alloc

    当前分配的字节没有被释放,但该事件数。

  • current_avg_alloc

    该事件的每个内存块的当前分配的字节数。

  • high_count

    对于内存块分配的事件数的高水位标记。

  • high_alloc

    对分配给事件的字节数的高水位标记。

  • high_avg_alloc

    对于每个内存块分配的字节数的事件平均高水位。

26.4.3.20的memory_global_total和X memory_global_total美元的看法

这些观点总结总的内存使用在服务器。

这个memory_global_totalx$memory_global_total观点,这些列:

  • total_allocated

    在服务器的内存分配的总字节数。

26.4.3.21度量观

这一观点总结了MySQL服务器的指标来显示变量的名称、值、类型,以及是否启用。默认情况下,行由变量的类型和名称排序。

这个metrics查看此信息包括:

  • 从绩效模式全局状态变量global_status

  • InnoDB度量的information_schemaINNODB_METRICS

  • 电流和总的内存分配,基于绩效的模式记忆的仪器

  • 当前时间(人类可读和Unix时间戳格式)

有一些重复的信息之间的global_statusINNODB_METRICS表,其中metrics查看消除

这个metrics查看这些列有:

  • Variable_name

    指标名称。度量的类型决定了源从它的名字了:

    • 全局状态变量的VARIABLE_NAME列的global_status

    • InnoDB的度量:姓名列的INNODB_METRICS

    • 其他指标:一个视图提供的描述性字符串

  • Variable_value

    度量值。度量类型确定来源的价值取:

  • Type

    “距离类型:

    • 全局状态变量:Global Status

    • InnoDB韵律学:InnoDB指标%,在那里%的值替换子系统列的INNODB_METRICS

    • 记忆的指标:Performance Schema

    • 对于当前的时间:System Time

  • Enabled

    是否启用的度量:

    • 全局状态变量:YES

    • InnoDB韵律学:如果STATUS列的INNODB_METRICS启用NO否则

    • 记忆的指标:NO,或PARTIAL(目前,部分只有记忆指标,表明不是所有的memory/%仪器启用;性能模式记忆工具总是启用)

    • 对于当前的时间:YES

26.4.3.22的列表和列表视图X美元

这些观点总结列表信息。他们提供更完整的信息比SHOW PROCESSLIST声明和information_schemaPROCESSLIST表,也非阻塞。默认情况下,行由下降过程的时间和等待时间排序降序。

这里列的简短描述。更多信息,见绩效模式描述threads第25.11.16.3,“线程表”

这个processlistx$processlist观点,这些列:

  • thd_id

    线程ID

  • conn_id

    连接ID

  • user

    线程或线程用户名称

  • db

    该线程的默认数据库,或NULL如果没有

  • command

    前台线程,指挥线是代表客户机执行的类型,或Sleep如果会话空闲的冰

  • state

    一个动作、事件或状态指示线程正在做什么。

  • time

    在几秒钟的时间,线程已在其当前状态。

  • current_statement

    声明线程正在执行,或NULL如果不执行任何语句

  • statement_latency

    语句被执行多长时间了。

  • progress

    百分比的工作完成阶段,支持进度报告。看到26.3节,“SYS模式进展报告”

  • lock_latency

    通过当前语句等待锁花费的时间。

  • rows_examined

    行存储引擎当前语句读取数。

  • rows_sent

    由当前语句返回的行数。

  • rows_affected

    由于当前语句影响的行数。

  • tmp_tables

    内存中的临时表的语句创建内部数。

  • tmp_disk_tables

    磁盘上的临时表的语句创建内部数。

  • full_scan

    全表扫描的数量由当前语句执行。

  • last_statement

    在线程中执行的最后一条语句,如果没有当前正在执行的语句或等待。

  • last_statement_latency

    多长时间执行最后一个语句。

  • current_memory

    通过线程分配的字节数。

  • last_wait

    为线程最近的等待事件的名称。

  • last_wait_latency

    为线程最近的等待事件的等待时间。

  • source

    源文件和行号含有产生事件的检测代码。

  • trx_latency

    该线程的当前事务的等待时间。

  • trx_state

    国家对当前事务的线程。

  • trx_autocommit

    是否自动提交模式启用当前事务开始时。

  • pid

    客户端进程ID

  • program_name

    客户端程序的名字

26.4.3.23的ps_check_lost_instrumentation观

此视图返回关于丢失的性能架构工具信息,表明性能模式无法监控所有运行数据。

这个ps_check_lost_instrumentation查看这些列有:

  • variable_name

    性能模式状态变量名指示仪器的类型了。

  • variable_value

    失去了工具的数量

26.4.3.24的schema_auto_increment_columns观

这一观点说明表AUTO_INCREMENT柱和提供关于这些列的信息,如电流和最大列值和使用率(比以前可能值)。默认情况下,按降序排列值和最大利用率。

在这些架构表被排除在查看输出:mysql系统INFORMATION_SCHEMAperformance_schema

这个schema_auto_increment_columns查看这些列有:

  • table_schema

    包含表的架构

  • table_name

    该表包含AUTO_INCREMENT专栏

  • column_name

    的名字AUTO_INCREMENT专栏

  • data_type

    该列的数据类型

  • column_type

    该列的列类型,这是数据类型和其他信息。例如,一个柱形bigint(20) unsigned列类型,数据类型是bigint

  • is_signed

    这是哥伦比亚型的

  • is_unsigned

    列是否类型是无符号

  • max_value

    最大允许值的列

  • auto_increment

    目前AUTO_INCREMENT该列的值

  • auto_increment_ratio

    比以前的允许值的列。这表明有多少价值序列用了

26.4.3.25的schema_index_statistics和X schema_index_statistics美元的看法

这些视图提供了指标统计。默认情况下,行由总指数排序下降延迟。

这个schema_index_statisticsx$schema_index_statistics观点,这些列:

  • table_schema

    包含表的架构

  • table_name

    包含索引的表

  • index_name

    该指数的名字

  • rows_selected

    使用索引读取的行数

  • select_latency

    使用索引的时间总等待时间看书。

  • rows_inserted

    行插入索引总数

  • insert_latency

    定时插入索引的总等待时间。

  • rows_updated

    行在索引更新的总数

  • update_latency

    定时更新索引中的总等待时间。

  • rows_deleted

    行删除索引总数

  • delete_latency

    总等待时间定时删除索引。

26.4.3.26的schema_object_overview观

这一观点总结了对象的类型在每个模式。默认情况下,行排序的模式和对象类型。

笔记

MySQL实例与大量的对象,这种观点可能需要很长的时间来执行。

这个schema_object_overview查看这些列有:

  • db

    架构名称

  • object_type

    对象类型:BASE TABLE索引index_type事件FUNCTION程序TRIGGER意见

  • count

    在给定类型的对象的数量的模式。

26.4.3.27的schema_redundant_indexes和X schema_flattened_keys美元的看法

这个schema_redundant_indexes视图显示的指标,其他指标或重复的多余的。这个x$schema_flattened_keys视图是一个辅助视图schema_redundant_indexes

在以下列描述,主要指标就是使索引冗余冗余。

这个schema_redundant_indexes查看这些列有:

  • table_schema

    包含表的架构

  • table_name

    包含索引的表

  • redundant_index_name

    的冗余索引的名称

  • redundant_index_columns

    在冗余索引的列的名称。

  • redundant_index_non_unique

    在冗余指数唯一的列数。

  • dominant_index_name

    的主索引的名称

  • dominant_index_columns

    在主索引的列的名称

  • dominant_index_non_unique

    在显性指标唯一的列数。

  • subpart_exists

    无论指数指标仅列部分。

  • sql_drop_index

    该语句执行掉多余的指标。

这个x$schema_flattened_keys查看这些列有:

  • table_schema

    包含表的架构

  • table_name

    包含索引的表

  • index_name

    指标名称

  • non_unique

    索引中唯一的列数

  • subpart_exists

    无论指数指标仅列部分。

  • index_columns

    索引中的列的名称

26.4.3.28的schema_table_lock_waits和X schema_table_lock_waits美元的看法

这些视图显示会话被阻塞在等待元数据锁,是什么阻止他们。

这里列的简短描述。更多信息,见绩效模式描述metadata_locks第25.11.12.3,“metadata_locks表”

这个schema_table_lock_waitsx$schema_table_lock_waits观点,这些列:

  • object_schema

    包含对象被锁定的模式。

  • object_name

    对检测对象的名称

  • waiting_thread_id

    这是等待锁的线程的ID。

  • waiting_pid

    这是等待锁的线程的ID的列表。

  • waiting_account

    这是等待锁的会话关联的帐户。

  • waiting_lock_type

    《等待锁的类型

  • waiting_lock_duration

    等待锁等多久了

  • waiting_query

    声明说,正在等待锁

  • waiting_query_secs

    声明等多久了,在几秒钟内。

  • waiting_query_rows_affected

    由语句影响的行数

  • waiting_query_rows_examined

    行从存储引擎的表读数。

  • blocking_thread_id

    这是阻塞等待锁的线程的ID。

  • blocking_pid

    这是阻塞等待锁的线程ID的列表。

  • blocking_account

    这是阻塞等待锁的线程关联的帐户。

  • blocking_lock_type

    锁是阻塞等待锁的类型。

  • blocking_lock_duration

    多久的阻塞锁已举行

  • sql_kill_blocking_query

    这个KILL语句执行杀死阻塞语句。

  • sql_kill_blocking_connection

    这个KILL语句执行杀死会话运行阻塞语句。

26.4.3.29的schema_table_statistics和X schema_table_statistics美元的看法

这些意见汇总统计表。默认情况下,行降总等待时间排序(大多数争夺第一表)。

这些观点的用户辅助视图,x$ps_schema_table_statistics_io

这个schema_table_statisticsx$schema_table_statistics观点,这些列:

  • table_schema

    包含表的架构

  • table_name

    表名

  • total_latency

    等待时间的总时间的I / O事件的表。

  • rows_fetched

    从表中读取的行数

  • fetch_latency

    总等待时间定时读取I/O表事件。

  • rows_inserted

    行插入到表的总数

  • insert_latency

    为表定时插入I/O事件的总等待时间。

  • rows_updated

    行表中更新的总数

  • update_latency

    定时更新I/O事件表的总等待时间。

  • rows_deleted

    从表中删除行的总数

  • delete_latency

    定时删除I/O表事件的总等待时间。

  • io_read_requests

    为表读取请求总数

  • io_read

    从表中读取的字节总数。

  • io_read_latency

    总等待时间读取表

  • io_write_requests

    为表写入请求的总数

  • io_write

    写入表中的总字节数

  • io_write_latency

    总等待时间写表

  • io_misc_requests

    杂的I/O请求表的总数。

  • io_misc_latency

    杂的I/O请求表的总等待时间。

26.4.3.30的schema_table_statistics_with_buffer和schema_table_statistics_with_buffer美元的看法

这些意见汇总统计表,包括InnoDB缓冲池数据。默认情况下,行降总等待时间排序(大多数争夺第一表)。

这些观点的用户辅助视图,x$ps_schema_table_statistics_io

这个schema_table_statistics_with_bufferx$schema_table_statistics_with_buffer观点,这些列:

  • table_schema

    包含表的架构

  • table_name

    表名

  • rows_fetched

    从表中读取的行数

  • fetch_latency

    总等待时间定时读取I/O表事件。

  • rows_inserted

    行插入到表的总数

  • insert_latency

    为表定时插入I/O事件的总等待时间。

  • rows_updated

    行表中更新的总数

  • update_latency

    定时更新I/O事件表的总等待时间。

  • rows_deleted

    从表中删除行的总数

  • delete_latency

    定时删除I/O表事件的总等待时间。

  • io_read_requests

    为表读取请求总数

  • io_read

    从表中读取的字节总数。

  • io_read_latency

    总等待时间读取表

  • io_write_requests

    为表写入请求的总数

  • io_write

    写入表中的总字节数

  • io_write_latency

    总等待时间写表

  • io_misc_requests

    杂的I/O请求表的总数。

  • io_misc_latency

    杂的I/O请求表的总等待时间。

  • innodb_buffer_allocated

    总人数InnoDBallocated字节缓冲区的表。

  • innodb_buffer_data

    总人数InnoDBallocated字节的数据表。

  • innodb_buffer_free

    总人数InnoDBallocated for the table(非数据字节innodb_buffer_allocated?innodb_buffer_data

  • innodb_buffer_pages

    总人数InnoDBallocated页的表。

  • innodb_buffer_pages_hashed

    总人数InnoDB哈希页表分配

  • innodb_buffer_pages_old

    总人数InnoDB老allocated页的表。

  • innodb_buffer_rows_cached

    总人数InnoDB高速缓存行的表

26.4.3.31的schema_tables_with_full_table_scans和schema_tables_with_full_table_scans美元的看法

这些视图显示表和全表扫描访问。默认情况下,行由行扫描排序降序。

这个schema_tables_with_full_table_scansx$schema_tables_with_full_table_scans观点,这些列:

  • object_schema

    架构名称

  • object_name

    表名

  • rows_full_scanned

    通过对全表扫描的扫描行数。

  • latency

    对全表扫描的总等待时间。

26.4.3.32的schema_unused_indexes观

这些视图显示指标,没有事件,这表明他们没有被使用。默认情况下,行由架构和表排序。

这种观点是最有用的时候,服务器已处理足够长的时间,其工作量是代表。否则,在这个视图索引的存在是有意义的。

这个schema_unused_indexes查看这些列有:

  • object_schema

    架构名称

  • object_name

    表名

  • index_name

    未使用的索引名称

26.4.3.33会话和X $ SESSION的看法

这些观点是相似的processlistx$processlist,但他们过滤掉背景的过程只显示用户会话。对列的描述,参见第26.4.3.22,“列表和列表视图X美元”

26.4.3.34的session_ssl_status观

对每一个连接,此视图显示SSL版本,密码,和重复使用的SSL会话数。

这个session_ssl_status查看这些列有:

  • thread_id

    用于连接的线程的ID。

  • ssl_version

    SSL version of the used for the connection。

  • ssl_cipher

    the used for the cipher的SSL连接。

  • ssl_sessions_reused

    用于连接使用SSL会话数。

26.4.3.35的statement_analysis和X statement_analysis美元的看法

这些视图列表的归一化的报表汇总统计。内容模仿MySQL企业监控器查询分析。默认情况下,行降总延迟时间排序。

这个statement_analysisx$statement_analysis观点,这些列:

  • query

    归一化的语句字符串

  • db

    该语句的默认数据库,或NULL如果没有

  • full_scan

    全表扫描的总数量的事件进行声明。

  • exec_count

    时代的语句执行的总数。

  • err_count

    通过声明事件产生的错误总数。

  • warn_count

    通过声明事件产生警告的总数。

  • total_latency

    定时事件声明的总等待时间。

  • max_latency

    定时事件声明的最大等待时间。

  • avg_latency

    按时间发生的语句的平均等待时间。

  • lock_latency

    总的时间等待定时事件声明的锁。

  • rows_sent

    通过声明事件返回的行数。

  • rows_sent_avg

    返回的每行语句发生平均数。

  • rows_examined

    行的声明事件存储引擎读取总数。

  • rows_examined_avg

    从每行存储引擎的表发生读取的平均数。

  • rows_affected

    通过声明事件受影响的行数。

  • rows_affected_avg

    受影响的每行语句发生平均数。

  • tmp_tables

    内存中的临时表的创建语句出现的总内部数。

  • tmp_disk_tables

    磁盘上的临时表的语句出现了内部的总数。

  • rows_sorted

    行的声明事件排序的总数。

  • sort_merge_passes

    种类总数合并经过声明事件。

  • digest

    声明摘要

  • first_seen

    时间的声明是第一次看到。

  • last_seen

    时间的声明最近看到

26.4.3.36的statements_with_errors_or_warnings和statements_with_errors_or_warnings美元的看法

这些视图显示归一化产生错误或警告的语句。默认情况下,行降错误和警告的计数排序。

这个statements_with_errors_or_warningsx$statements_with_errors_or_warnings观点,这些列:

  • query

    归一化的语句字符串

  • db

    该语句的默认数据库,或NULL如果没有

  • exec_count

    时代的语句执行的总数。

  • errors

    通过声明事件产生的错误总数。

  • error_pct

    声明事件产生的错误率。

  • warnings

    通过声明事件产生警告的总数。

  • warning_pct

    声明警告事件产生率

  • first_seen

    时间的声明是第一次看到。

  • last_seen

    时间的声明最近看到

  • digest

    声明摘要

26.4.3.37的statements_with_full_table_scans和statements_with_full_table_scans美元的看法

这些视图显示了归一化,全表扫描的陈述。默认情况下,行降时间全扫描做降总延迟时间百分比排序。

这个statements_with_full_table_scansx$statements_with_full_table_scans观点,这些列:

  • query

    归一化的语句字符串

  • db

    该语句的默认数据库,或NULL如果没有

  • exec_count

    时代的语句执行的总数。

  • total_latency

    该语句的时间陈述事件的总等待时间。

  • no_index_used_count

    次没有索引总数进行表扫描。

  • no_good_index_used_count

    时代没有好的指标总数进行表扫描。

  • no_index_used_pct

    时间的百分比没有指数是用来扫描表。

  • rows_sent

    从表中返回的行数

  • rows_examined

    行的表的存储引擎读取总数。

  • rows_sent_avg

    从表中返回的行数

  • rows_examined_avg

    行的表的存储引擎读取的平均数。

  • first_seen

    时间的声明是第一次看到。

  • last_seen

    时间的声明最近看到

  • digest

    声明摘要

26.4.3.38的statements_with_runtimes_in_95th_percentile和statements_with_runtimes_in_95th_percentile美元的看法

这些视图列表在第九十五百分位的运行时间。默认情况下,行降的平均延迟时间排序。

两视图使用两个辅助视图,x$ps_digest_avg_latency_distributionX _ _ _ PS文摘第九十五美元百分_ _美国_ AVG模式

这个statements_with_runtimes_in_95th_percentilex$statements_with_runtimes_in_95th_percentile观点,这些列:

  • query

    归一化的语句字符串

  • db

    该语句的默认数据库,或NULL如果没有

  • full_scan

    全表扫描的总数量的事件进行声明。

  • exec_count

    时代的语句执行的总数。

  • err_count

    通过声明事件产生的错误总数。

  • warn_count

    通过声明事件产生警告的总数。

  • total_latency

    定时事件声明的总等待时间。

  • max_latency

    定时事件声明的最大等待时间。

  • avg_latency

    按时间发生的语句的平均等待时间。

  • rows_sent

    通过声明事件返回的行数。

  • rows_sent_avg

    返回的每行语句发生平均数。

  • rows_examined

    行的声明事件存储引擎读取总数。

  • rows_examined_avg

    从每行存储引擎的表发生读取的平均数。

  • first_seen

    时间的声明是第一次看到。

  • last_seen

    时间的声明最近看到

  • digest

    声明摘要

26.4.3.39的statements_with_sorting和X statements_with_sorting美元的看法

这些视图列表,各种报表进行归一化。默认情况下,行降总延迟时间排序。

这个statements_with_sortingx$statements_with_sorting观点,这些列:

  • query

    归一化的语句字符串

  • db

    该语句的默认数据库,或NULL如果没有

  • exec_count

    时代的语句执行的总数。

  • total_latency

    定时事件声明的总等待时间。

  • sort_merge_passes

    种类总数合并经过声明事件。

  • avg_sort_merges

    排序的平均数每发生过合并报表。

  • sorts_using_scans

    通过声明事件使用表扫描类型总数。

  • sort_using_range

    使用范围各种各样的访问总数的声明事件。

  • rows_sorted

    行的声明事件排序的总数。

  • avg_rows_sorted

    每行语句的排序发生的平均数。

  • first_seen

    时间的声明是第一次看到。

  • last_seen

    时间的声明最近看到

  • digest

    声明摘要

26.4.3.40的statements_with_temp_tables和X statements_with_temp_tables美元的看法

这些视图列表,使用临时表报表规范。默认情况下,行下降数量整理磁盘上的临时表的使用和降数在内存中的临时表的使用。

这个statements_with_temp_tablesx$statements_with_temp_tables观点,这些列:

  • query

    归一化的语句字符串

  • db

    该语句的默认数据库,或NULL如果没有

  • exec_count

    时代的语句执行的总数。

  • total_latency

    定时事件声明的总等待时间。

  • memory_tmp_tables

    内存中的临时表的创建语句出现的总内部数。

  • disk_tmp_tables

    磁盘上的临时表的语句出现了内部的总数。

  • avg_tmp_tables_per_query

    内部临时表的语句创建每发生的平均数。

  • tmp_tables_to_disk_pct

    在内存中的临时表被转换到磁盘上的表内的百分比。

  • first_seen

    时间的声明是第一次看到。

  • last_seen

    时间的声明最近看到

  • digest

    声明摘要

26.4.3.41的user_summary和X user_summary美元的看法

这些观点总结陈述活动,文件I/O,和连接方式,按用户。默认情况下,行降总延迟时间排序。

这个user_summaryx$user_summary观点,这些列:

  • user

    客户端的用户名。行,USER在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • statements

    为用户报表的总数

  • statement_latency

    定时报表的用户的总等待时间。

  • statement_avg_latency

    平均等待时间每定时报表用户。

  • table_scans

    表总数扫描用户

  • file_ios

    总人数为1 / o Events for the user .

  • file_io_latency

    等待时间的总时间的文件I / O事件的用户。

  • current_connections

    当前的用户连接数

  • total_connections

    为用户连接总数

  • unique_hosts

    一些不同的主机,为用户连接的起源。

  • current_memory

    当前分配的内存使用量。

  • total_memory_allocated

    的总金额allocated存储器的用户。

26.4.3.42的user_summary_by_file_io和X user_summary_by_file_io美元的看法

这些观点总结文件I/O,按用户。默认情况下,行降总文件I/O延迟排序。

这个user_summary_by_file_iox$user_summary_by_file_io观点,这些列:

  • user

    客户端的用户名。行,USER在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • ios

    总人数为1 / o Events for the user .

  • io_latency

    等待时间的总时间的文件I / O事件的用户。

26.4.3.43的user_summary_by_file_io_type和X user_summary_by_file_io_typeviews美元

这些观点总结文件I/O,按用户和事件类型。默认情况下,行由用户和下降的总延迟时间排序。

这个user_summary_by_file_io_typex$user_summary_by_file_io_type观点,这些列:

  • user

    客户端的用户名。行,USER在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • event_name

    的I / O事件的文件的名称。

  • total

    总数量的文件I/O事件发生的用户。

  • latency

    总等待时间的定时事件的文件I/O事件为用户。

  • max_latency

    最大等待时间定时出现的文件I/O事件为用户。

26.4.3.44的user_summary_by_stages和X user_summary_by_stages美元的看法

这些观点总结阶段,按用户。默认情况下,行由用户和降总潜伏阶段分类。

这个user_summary_by_stagesx$user_summary_by_stages观点,这些列:

  • user

    客户端的用户名。行,USER在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • event_name

    阶段活动名称

  • total

    对用户的阶段事件发生总数。

  • total_latency

    定时事件对用户级事件的总等待时间。

  • avg_latency

    按时间发生的事件的阶段,用户平均等待时间。

26.4.3.45的user_summary_by_statement_latency和user_summary_by_statement_latency美元的看法

这些观点总结报表统计,按用户。默认情况下,行降总延迟时间排序。

这个user_summary_by_statement_latencyx$user_summary_by_statement_latency观点,这些列:

  • user

    客户端的用户名。行,USER在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • total

    为用户报表的总数

  • total_latency

    定时报表的用户的总等待时间。

  • max_latency

    定时报表用户最大等待时间。

  • lock_latency

    总的时间等待定时报表用户锁定。

  • rows_sent

    通过对用户语句返回的行数。

  • rows_examined

    行由用户报表的存储引擎读取总数。

  • rows_affected

    通过对用户的语句影响的行数。

  • full_scans

    全表扫描的用户报表的总数。

26.4.3.46的user_summary_by_statement_type和X user_summary_by_statement_typeviews美元

这些观点总结报表执行信息,按用户类型和声明。默认情况下,行由用户和下降的总延迟时间排序。

这个user_summary_by_statement_typex$user_summary_by_statement_type观点,这些列:

  • user

    客户端的用户名。行,USER在基本性能模式表列无效的假定是后台线程和报告与主机名称background

  • statement

    声明的事件名称的最后部分。

  • total

    the total number of事件声明事件for the user。

  • total_latency

    定时事件对用户声明事件的总等待时间。

  • max_latency

    定时事件对用户声明事件的最大等待时间。

  • lock_latency

    总时间等时间点为用户声明事件锁。

  • rows_sent

    通过对用户声明事件发生返回的行的总数。

  • rows_examined

    行通过对用户声明事件的发生从存储引擎读取总数。

  • rows_affected

    通过对用户声明事件发生影响的行数。

  • full_scans

    所有全台台的全台扫描数都是用于用户的定位器。

26.4.3.47版本视图

这一观点提供电流sys和MySQL服务器版本归档模式。

这个version查看这些列有:

  • sys_version

    这个sys架构版本

  • mysql_version

    MySQL服务器版本。

26.4.3.48的wait_classes_global_by_avg_latency和wait_classes_global_by_avg_latency美元的看法

这些观点总结等类的平均潜伏期,通过事件类分组。默认情况下,行降的平均延迟时间排序。空闲事件被忽略。

事件类是通过剥离从事件名称后的第一个三成分决定一切。例如,类wait/io/file/sql/slow_log等待/ IO /文件

这个wait_classes_global_by_avg_latencyx$wait_classes_global_by_avg_latency观点,这些列:

  • event_class

    事件类

  • total

    对类事件发生总数

  • total_latency

    定时出现在类的事件的总等待时间。

  • min_latency

    最小单等待时间定时出现在类的事件。

  • avg_latency

    每时发生在课堂上发生的平均等待时间。

  • max_latency

    定时出现在类的事件的最大等待时间。

26.4.3.49的wait_classes_global_by_latency和X wait_classes_global_by_latencyviews美元

这些观点总结等类的总延迟,通过事件类分组。默认情况下,行降总延迟时间排序。空闲事件被忽略。

事件类是通过剥离从事件名称后的第一个三成分决定一切。例如,类wait/io/file/sql/slow_log等待/ IO /文件

这个wait_classes_global_by_latencyx$wait_classes_global_by_latency观点,这些列:

  • event_class

    事件类

  • total

    对类事件发生总数

  • total_latency

    定时出现在类的事件的总等待时间。

  • min_latency

    最小单等待时间定时出现在类的事件。

  • avg_latency

    每时发生在课堂上发生的平均等待时间。

  • max_latency

    定时出现在类的事件的最大等待时间。

26.4.3.50的waits_by_host_by_latency和X waits_by_host_by_latency美元的看法

这些观点总结等事件,由宿主和事件分组。默认情况下,行排序由宿主和下降的总延迟时间。空闲事件被忽略。

这个waits_by_host_by_latencyx$waits_by_host_by_latency观点,这些列:

  • host

    主机的连接的起源

  • event

    事件名称

  • total

    对主机事件发生总数

  • total_latency

    定时事件对举办活动的总等待时间。

  • avg_latency

    每时发生的宿主事件的平均等待时间。

  • max_latency

    定时出现的主机事件最大等待时间。

26.4.3.51的waits_by_user_by_latency和X waits_by_user_by_latency美元的看法

这些观点总结等活动,通过用户和事件分组。默认情况下,行由用户和下降的总延迟时间排序。空闲事件被忽略。

这个waits_by_user_by_latencyx$waits_by_user_by_latency观点,这些列:

  • user

    与连接相关的用户

  • event

    事件名称

  • total

    对用户事件发生总数

  • total_latency

    定时事件对用户事件的总等待时间。

  • avg_latency

    每时发生的事件为用户平均等待时间。

  • max_latency

    定时事件对用户事件的最大等待时间。

26.4.3.52的waits_global_by_latency和X waits_global_by_latency美元的看法

这些观点总结等事件,按事件。默认情况下,行降总延迟时间排序。空闲事件被忽略。

这个waits_global_by_latencyx$waits_global_by_latency观点,这些列:

  • events

    事件名称

  • total

    对事件发生的总数

  • total_latency

    时间事件事件的总等待时间。

  • avg_latency

    按时间发生的事件的平均等待时间。

  • max_latency

    时间事件事件的最大等待时间。

26.4.4系统架构的存储过程

以下各节描述sys架构的存储过程

26.4.4.1的create_synonym_db()程序

给定一个架构名称,这个程序创建一个包含视图是指在原有的架构中的所有表和视图的同义词模式。这可以使用,例如,创建一个较短的名称,指的是一个很长的名字架构(如info而不是information_schema

参数
  • in_db_name VARCHAR(64):the name of the for which to the synonym创建模式。

  • in_synonym VARCHAR(64):使用同义词架构的名称。这个模式一定不能已经存在。

例子
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| world              |
+--------------------+
mysql> CALL create_synonym_db('INFORMATION_SCHEMA', 'info');
+---------------------------------------+
| summary                               |
+---------------------------------------+
| Created 63 views in the info database |
+---------------------------------------+
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| info               |
| mysql              |
| performance_schema |
| sys                |
| world              |
+--------------------+
mysql> SHOW FULL TABLES FROM info;
+---------------------------------------+------------+
| Tables_in_info                        | Table_type |
+---------------------------------------+------------+
| character_sets                        | VIEW       |
| collation_character_set_applicability | VIEW       |
| collations                            | VIEW       |
| column_privileges                     | VIEW       |
| columns                               | VIEW       |
...

26.4.4.2的diagnostics()程序

创建用于诊断目的的当前服务器状态报告。

这个程序要求SYSTEM_VARIABLES_ADMINSUPER因为它操纵会议的特权sql_log_bin系统变量在执行过程中禁用二进制日志。

数据收集diagnostics()此信息包括:

  • 信息metrics(这城第26.4.3.21,“度量”观

  • 其他相关信息sys架构视图,如一个决定在百分第九十五的查询

  • 信息ndbinfo图式,如果MySQL服务器MySQL集群的一部分

  • 复制状态(主人和奴隶)

一些系统架构视图计算初始(可选),总的来说,和δ值:

  • 初步认为是年初的视图的内容diagnostics()程序。这个输出是用于三角洲观开始值相同。最初的观点是:如果diagnostics.include_raw配置选项ON

  • 总体来看,在年底的查看内容diagnostics()程序。这个输出是用于三角查看最终值相同。总体来看,始终是包括。

  • 三角洲的观点是从开始到结束执行程序的区别。最小和最大值从端看最大值和最小值,分别为。他们不一定反映在监测期内的最大值和最小值。除了metrics看来,三角洲是只计算之间的第一个和最后一个输出。

参数
  • in_max_runtime INT UNSIGNED:在秒的最大数据采集时间。使用无效的收集数据60秒默认。否则,使用价值大于零。

  • in_interval INT UNSIGNED:在秒之间的数据集合的睡眠时间。使用无效的睡了默认值30秒。否则,使用大于0的值。

  • in_auto_config ENUM('current', 'medium', 'full'):性能架构的配置使用。允许值:

    • current:使用当前的仪器和消费环境。

    • medium:使一些仪器和消费者。

    • full:使所有的仪器和消费者。

    笔记

    更多的工具和消费者的启用,对MySQL服务器性能的影响。小心medium设置和特别的全部设置,它有一个大的性能的影响。

    使用的medium全部设置要求SUPER特权

    如果设置以外current选择,目前的设置是在手术结束时恢复。

配置选项

diagnostics()操作可以使用以下配置选项或相应的自定义变量修改(见第26.4.2.1,“sys_config表”):

  • debug“sys.debug

    如果这个选项是ON、生产调试输出。默认值是关闭

  • diagnostics.allow_i_s_tables@sys.diagnostics.allow_i_s_tables

    如果这个选项是ON,的diagnostics()程序是允许在执行表扫描INFORMATION_SCHEMA.TABLES表这可以有很多桌子是昂贵的。默认值是关闭

  • diagnostics.include_raw@sys.diagnostics.include_raw

    如果这个选项是ON,的diagnostics()程序输出包括原输出查询metrics意见默认值是关闭

  • statement_truncate_len@sys.statement_truncate_len

    在返回语句的最大长度format_statement()功能。较长的语句截断长度。默认值是64。

例子

创建诊断报告,开始迭代每30秒运行最多120秒使用电流性能模式设置:

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

从捕获的输出diagnostics()文件中的程序运行时,使用MySQL客户tee filenamenotee命令(见4.5.1.2节,“MySQL命令”):

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

26.4.4.3的execute_prepared_stmt()程序

给定一个SQL语句作为字符串,执行它作为一个事先准备好的声明。该声明被释放后执行的,所以它不受重用。因此,本程序主要用于执行一个一次性的动态报表。

本程序采用sys_execute_prepared_stmt由于事先准备好的声明的名字。如果存在语句名调用过程时,以前的内容被破坏。

参数
  • in_query LONGTEXT CHARACTER SET utf8声明字符串来执行

配置选项

execute_prepared_stmt()操作可以使用以下配置选项或相应的自定义变量修改(见第26.4.2.1,“sys_config表”):

  • debug“sys.debug

    如果这个选项是ON、生产调试输出。默认值是关闭

例子
mysql> CALL execute_prepared_stmt('SELECT COUNT(*) FROM mysql.user');
+----------+
| COUNT(*) |
+----------+
|       15 |
+----------+

26.4.4.4的ps_setup_disable_background_threads()程序

禁用所有后台线程性能架构仪器。产生一个结果集显示多少后台线程被禁用。已禁用线程不计数。

参数

例子
mysql> CALL ps_setup_disable_background_threads();
+--------------------------------+
| summary                        |
+--------------------------------+
| Disabled 24 background threads |
+--------------------------------+

安装程序26.4.4.5 the PS _ _ _消费者(禁用)。

禁用性能模式消费者与包含参数名称。产生一个结果集显示有多少消费者被禁用。已禁用的消费者不算。

参数
  • consumer VARCHAR(128):用于匹配消费者姓名的价值,这是确定的%的消费%作为一个操作数LIKE模式匹配

    一个值''所有的消费

例子

禁用所有声明的消费者:

mysql> CALL ps_setup_disable_consumer('statement');
+----------------------+
| summary              |
+----------------------+
| Disabled 4 consumers |
+----------------------+

26.4.4.6的ps_setup_disable_instrument()程序

禁用性能架构工具包含参数名称。产生一个结果集显示多少工具被禁用。已禁用的工具不算。

参数
  • in_pattern VARCHAR(128)仪器名称:用于匹配的值,这是确定的% % _模式作为一个操作数LIKE模式匹配

    一个值''匹配所有的仪器

例子

禁用特定仪器:

mysql> CALL ps_setup_disable_instrument('wait/lock/metadata/sql/mdl');
+-----------------------+
| summary               |
+-----------------------+
| Disabled 1 instrument |
+-----------------------+

禁用所有互斥工具:

mysql> CALL ps_setup_disable_instrument('mutex');
+--------------------------+
| summary                  |
+--------------------------+
| Disabled 177 instruments |
+--------------------------+

26.4.4.7的ps_setup_disable_thread()程序

给定一个连接ID,禁用性能模式固定螺纹。产生一个结果集显示多少线程被禁用。已禁用线程不计数。

参数
  • in_connection_id BIGINT:ID。这是一个连接ID在给定的连接processlist_id的性能架构列threads表或身份证件SHOW PROCESSLIST输出

例子

通过其连接ID禁用特定连接:

mysql> CALL ps_setup_disable_thread(225);
+-------------------+
| summary           |
+-------------------+
| Disabled 1 thread |
+-------------------+

关闭当前连接:

mysql> CALL ps_setup_disable_thread(CONNECTION_ID());
+-------------------+
| summary           |
+-------------------+
| Disabled 1 thread |
+-------------------+

26.4.4.8的ps_setup_enable_background_threads()程序

使性能架构仪器所有后台线程。产生一个结果集显示多少后台线程启用。已启用的线程不计数。

参数

例子
mysql> CALL ps_setup_enable_background_threads();
+-------------------------------+
| summary                       |
+-------------------------------+
| Enabled 24 background threads |
+-------------------------------+

26.4.4.9的ps_setup_enable_consumer()程序

使性能模式消费者与包含参数名称。产生一个结果集显示有多少消费者被启用。已经使消费者不计数。

参数
  • consumer VARCHAR(128):用于匹配消费者姓名的价值,这是确定的%的消费%作为一个操作数LIKE模式匹配

    一个值''所有的消费

例子

使所有声明的消费者:

mysql> CALL ps_setup_enable_consumer('statement');
+---------------------+
| summary             |
+---------------------+
| Enabled 4 consumers |
+---------------------+

26.4.4.10的ps_setup_enable_instrument()程序

使仪器的性能架构包含参数名称。产生一个结果集显示多少工具启用。已启用的仪器不计数。

参数
  • in_pattern VARCHAR(128)仪器名称:用于匹配的值,这是确定的% % _模式作为一个操作数LIKE模式匹配

    一个值''匹配所有的仪器

例子

使一个特定的工具:

mysql> CALL ps_setup_enable_instrument('wait/lock/metadata/sql/mdl');
+----------------------+
| summary              |
+----------------------+
| Enabled 1 instrument |
+----------------------+

使所有的互斥工具:

mysql> CALL ps_setup_enable_instrument('mutex');
+-------------------------+
| summary                 |
+-------------------------+
| Enabled 177 instruments |
+-------------------------+

26.4.4.11的ps_setup_enable_thread()程序

给定一个连接ID,使仪器性能模式的线程。产生一个结果集显示多少线程启用。已启用的线程不计数。

参数
  • in_connection_id BIGINT:ID。这是一个连接ID在给定的连接processlist_id的性能架构列threads表或身份证件SHOW PROCESSLIST输出

例子

使其连接ID特定连接:

mysql> CALL ps_setup_enable_thread(225);
+------------------+
| summary          |
+------------------+
| Enabled 1 thread |
+------------------+

使当前连接:

mysql> CALL ps_setup_enable_thread(CONNECTION_ID());
+------------------+
| summary          |
+------------------+
| Enabled 1 thread |
+------------------+

26.4.4.12的ps_setup_reload_saved()程序

重新加载之前保存的性能架构配置在同一会话中使用ps_setup_save()。更多信息,见描述ps_setup_save()

这个程序要求SYSTEM_VARIABLES_ADMINSUPER因为它操纵会议的特权sql_log_bin系统变量在执行过程中禁用二进制日志。

参数

26.4.4.13的ps_setup_reset_to_default()程序

复位性能模式配置为默认设置。

参数
  • in_verbose BOOLEAN:是否在执行过程中每个阶段的信息显示设置。这包括执行SQL语句。

例子
mysql> CALL ps_setup_reset_to_default(TRUE)\G
*************************** 1. row ***************************
status: Resetting: setup_actors
DELETE
FROM performance_schema.setup_actors
WHERE NOT (HOST = '%' AND USER = '%' AND ROLE = '%')

*************************** 1. row ***************************
status: Resetting: setup_actors
INSERT IGNORE INTO performance_schema.setup_actors
VALUES ('%', '%', '%')

...

26.4.4.14的ps_setup_save()程序

保存当前绩效模式配置。这使您可以修改配置暂时调试或其他目的,然后恢复到以前的状态,通过调用ps_setup_reload_saved()程序

为了防止其他同时调用保存配置,ps_setup_save()获得咨询锁命名sys.ps_setup_save通过调用GET_LOCK()功能ps_setup_save()以一个超时参数表明如果锁已经存在,等待几秒钟(这表明其他会话已保存的配置突出)。如果超时没有获得锁,ps_setup_save()失败.

它的目的是给你打电话ps_setup_reload_saved()后来在相同的会议ps_setup_save()因为配置保存在临时ps_setup_save()滴的临时表和释放锁。如果你结束会话而不调用ps_setup_save(),表和锁自动消失

这个程序要求SYSTEM_VARIABLES_ADMINSUPER因为它操纵会议的特权sql_log_bin系统变量在执行过程中禁用二进制日志。

参数
  • in_timeout INT:等待获得多少秒sys.ps_setup_save锁具一个负的超时值表示无限超时。

例子
mysql> CALL ps_setup_save(10);

... make Performance Schema configuration changes ...

mysql> CALL ps_setup_reload_saved();

26.4.4.15的ps_setup_show_disabled()程序

显示所有当前禁用性能模式配置。

参数
  • in_show_instruments BOOLEAN:是否显示禁用的工具。这可能是一个长长的清单。

  • in_show_threads BOOLEAN:是否显示禁用线程

例子
mysql> CALL ps_setup_show_disabled(TRUE, TRUE);
+----------------------------+
| performance_schema_enabled |
+----------------------------+
|                          1 |
+----------------------------+

+---------------+
| enabled_users |
+---------------+
| '%'@'%'       |
+---------------+

+-------------+----------------------+---------+-------+
| object_type | objects              | enabled | timed |
+-------------+----------------------+---------+-------+
| EVENT       | mysql.%              | NO      | NO    |
| EVENT       | performance_schema.% | NO      | NO    |
| EVENT       | information_schema.% | NO      | NO    |
| FUNCTION    | mysql.%              | NO      | NO    |
| FUNCTION    | performance_schema.% | NO      | NO    |
| FUNCTION    | information_schema.% | NO      | NO    |
| PROCEDURE   | mysql.%              | NO      | NO    |
| PROCEDURE   | performance_schema.% | NO      | NO    |
| PROCEDURE   | information_schema.% | NO      | NO    |
| TABLE       | mysql.%              | NO      | NO    |
| TABLE       | performance_schema.% | NO      | NO    |
| TABLE       | information_schema.% | NO      | NO    |
| TRIGGER     | mysql.%              | NO      | NO    |
| TRIGGER     | performance_schema.% | NO      | NO    |
| TRIGGER     | information_schema.% | NO      | NO    |
+-------------+----------------------+---------+-------+

...

26.4.4.16的ps_setup_show_disabled_consumers()程序

显示所有当前禁用性能模式消费者。

参数

例子
mysql> CALL ps_setup_show_disabled_consumers();
+----------------------------------+
| disabled_consumers               |
+----------------------------------+
| events_stages_current            |
| events_stages_history            |
| events_stages_history_long       |
| events_statements_history        |
| events_statements_history_long   |
| events_transactions_history      |
| events_transactions_history_long |
| events_waits_current             |
| events_waits_history             |
| events_waits_history_long        |
+----------------------------------+

26.4.4.17的ps_setup_show_disabled_instruments()程序

显示所有当前禁用性能模式工具。这可能是一个长长的清单。

参数

例子
mysql> CALL ps_setup_show_disabled_instruments()\G
*************************** 1. row ***************************
disabled_instruments: wait/synch/mutex/sql/TC_LOG_MMAP::LOCK_tc
               timed: NO
*************************** 2. row ***************************
disabled_instruments: wait/synch/mutex/sql/THD::LOCK_query_plan
               timed: NO
*************************** 3. row ***************************
disabled_instruments: wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_commit
               timed: NO
...

26.4.4.18的ps_setup_show_enabled()程序

显示所有当前启用性能模式配置。

参数
  • in_show_instruments BOOLEAN:是否显示功能的仪器。这可能是一个长长的清单。

  • in_show_threads BOOLEAN:是否显示启用线程

例子
mysql> CALL ps_setup_show_enabled(FALSE, FALSE);
+----------------------------+
| performance_schema_enabled |
+----------------------------+
|                          1 |
+----------------------------+
1 row in set (0.00 sec)

+---------------+
| enabled_users |
+---------------+
| '%'@'%'       |
+---------------+
1 row in set (0.00 sec)

+-------------+----------------------+---------+-------+
| object_type | objects              | enabled | timed |
+-------------+----------------------+---------+-------+
| EVENT       | %.%                  | YES     | YES   |
| FUNCTION    | %.%                  | YES     | YES   |
| PROCEDURE   | %.%                  | YES     | YES   |
| TABLE       | %.%                  | YES     | YES   |
| TRIGGER     | %.%                  | YES     | YES   |
+-------------+----------------------+---------+-------+
5 rows in set (0.01 sec)

+-----------------------------+
| enabled_consumers           |
+-----------------------------+
| events_statements_current   |
| events_transactions_current |
| global_instrumentation      |
| thread_instrumentation      |
| statements_digest           |
+-----------------------------+

26.4.4.19的ps_setup_show_enabled_consumers()程序

显示所有当前启用性能模式消费者。

参数

例子
mysql> CALL ps_setup_show_enabled_consumers();
+-----------------------------+
| enabled_consumers           |
+-----------------------------+
| events_statements_current   |
| events_transactions_current |
| global_instrumentation      |
| thread_instrumentation      |
| statements_digest           |
+-----------------------------+

26.4.4.20的ps_setup_show_enabled_instruments()程序

显示所有当前启用的性能架构工具。这可能是一个长长的清单。

参数

例子
mysql> CALL ps_setup_show_enabled_instruments()\G
*************************** 1. row ***************************
enabled_instruments: wait/io/file/sql/map
              timed: YES
*************************** 2. row ***************************
enabled_instruments: wait/io/file/sql/binlog
              timed: YES
*************************** 3. row ***************************
enabled_instruments: wait/io/file/sql/binlog_cache
              timed: YES
...

26.4.4.21的ps_statement_avg_latency_histogram()程序

显示一个文本直方图的平均潜伏期值在所有规范报表跟踪在性能模式events_statements_summary_by_digest

这个程序可以用来显示一个非常高级的图片报表运行MySQL实例内的延迟分布。

参数

例子

在声明的直方图输出单元。例如,* = 2 units在直方图的传奇意味着每个*字符代表二陈述

mysql> CALL ps_statement_avg_latency_histogram()\G
*************************** 1. row ***************************
Performance Schema Statement Digest Average Latency Histogram:

  . = 1 unit
  * = 2 units
  # = 3 units

(0 - 66ms)     88  | #############################
(66 - 133ms)   14  | ..............
(133 - 199ms)  4   | ....
(199 - 265ms)  5   | **
(265 - 332ms)  1   | .
(332 - 398ms)  0   |
(398 - 464ms)  1   | .
(464 - 531ms)  0   |
(531 - 597ms)  0   |
(597 - 663ms)  0   |
(663 - 730ms)  0   |
(730 - 796ms)  0   |
(796 - 863ms)  0   |
(863 - 929ms)  0   |
(929 - 995ms)  0   |
(995 - 1062ms) 0   |

  Total Statements: 114; Buckets: 16; Bucket Size: 66 ms;

26.4.4.22的ps_trace_statement_digest()程序

跟踪所有性能模式仪器的特定语句消化。

如果你发现在性能模式有兴趣的声明events_statements_summary_by_digest表,指定其文摘柱的MD5值这个程序和显示投票的持续时间和间隔时间。结果是报告的所有统计跟踪的时间间隔内,消化性能模式。

程序试图执行EXPLAIN在区间运行时间最长的消化。这种尝试可能会失败因为性能架构削长_ SQL文本值。因此,EXPLAIN将失败的原因解析错误。

这个程序要求SYSTEM_VARIABLES_ADMINSUPER因为它操纵会议的特权sql_log_bin系统变量在执行过程中禁用二进制日志。

参数
  • in_digest VARCHAR(32)摘要:声明标识符分析。

  • in_runtime INT:多长时间在秒运行分析。

  • in_interval DECIMAL(2,2)分析:在秒的间隔(可以是分数),把快照。

  • in_start_fresh BOOLEAN:是否截断的性能模式events_statements_history_longevents_stages_history_long表开始之前

  • in_auto_enable BOOLEAN:是否自动启用所需的消费者。

例子
mysql> CALL ps_trace_statement_digest('891ec6860f98ba46d89dd20b0c03652c', 10, 0.1, TRUE, TRUE);
+--------------------+
| SUMMARY STATISTICS |
+--------------------+
| SUMMARY STATISTICS |
+--------------------+
1 row in set (9.11 sec)

+------------+-----------+-----------+-----------+---------------+------------+------------+
| executions | exec_time | lock_time | rows_sent | rows_examined | tmp_tables | full_scans |
+------------+-----------+-----------+-----------+---------------+------------+------------+
|         21 | 4.11 ms   | 2.00 ms   |         0 |            21 |          0 |          0 |
+------------+-----------+-----------+-----------+---------------+------------+------------+
1 row in set (9.11 sec)

+------------------------------------------+-------+-----------+
| event_name                               | count | latency   |
+------------------------------------------+-------+-----------+
| stage/sql/statistics                     |    16 | 546.92 us |
| stage/sql/freeing items                  |    18 | 520.11 us |
| stage/sql/init                           |    51 | 466.80 us |
...
| stage/sql/cleaning up                    |    18 | 11.92 us  |
| stage/sql/executing                      |    16 | 6.95 us   |
+------------------------------------------+-------+-----------+
17 rows in set (9.12 sec)

+---------------------------+
| LONGEST RUNNING STATEMENT |
+---------------------------+
| LONGEST RUNNING STATEMENT |
+---------------------------+
1 row in set (9.16 sec)

+-----------+-----------+-----------+-----------+---------------+------------+-----------+
| thread_id | exec_time | lock_time | rows_sent | rows_examined | tmp_tables | full_scan |
+-----------+-----------+-----------+-----------+---------------+------------+-----------+
|    166646 | 618.43 us | 1.00 ms   |         0 |             1 |          0 |         0 |
+-----------+-----------+-----------+-----------+---------------+------------+-----------+
1 row in set (9.16 sec)

# Truncated for clarity...
+-----------------------------------------------------------------+
| sql_text                                                        |
+-----------------------------------------------------------------+
| select hibeventhe0_.id as id1382_, hibeventhe0_.createdTime ... |
+-----------------------------------------------------------------+
1 row in set (9.17 sec)

+------------------------------------------+-----------+
| event_name                               | latency   |
+------------------------------------------+-----------+
| stage/sql/init                           | 8.61 us   |
| stage/sql/init                           | 331.07 ns |
...
| stage/sql/freeing items                  | 30.46 us  |
| stage/sql/cleaning up                    | 662.13 ns |
+------------------------------------------+-----------+
18 rows in set (9.23 sec)

+----+-------------+--------------+-------+---------------+-----------+---------+-------------+------+-------+
| id | select_type | table        | type  | possible_keys | key       | key_len | ref         | rows | Extra |
+----+-------------+--------------+-------+---------------+-----------+---------+-------------+------+-------+
|  1 | SIMPLE      | hibeventhe0_ | const | fixedTime     | fixedTime | 775     | const,const |    1 | NULL  |
+----+-------------+--------------+-------+---------------+-----------+---------+-------------+------+-------+
1 row in set (9.27 sec)

Query OK, 0 rows affected (9.28 sec)

26.4.4.23的ps_trace_thread()程序

转储所有性能模式数据检测线一.dot格式的图形文件(为点阵图形描述语言)。从过程返回的每个结果集应用于一个完整的图。

这个程序要求SYSTEM_VARIABLES_ADMINSUPER因为它操纵会议的特权sql_log_bin系统变量在执行过程中禁用二进制日志。

参数
  • in_thread_id INT:*到线程的痕迹

  • in_outfile VARCHAR(255):使用的名称。点输出文件

  • in_max_runtime DECIMAL(20,2):的最大秒数(可以是分数)来收集数据。使用无效的收集数据60秒默认

  • in_interval DECIMAL(20,2):秒数(可以是分数)睡在数据收集。使用无效的睡觉for the default of 1二。

  • in_start_fresh BOOLEAN:是否要重置所有性能数据之前跟踪模式。

  • in_auto_setup BOOLEAN:是否禁用所有其他线程,使所有的仪器和消费者。这也将设置在运行结束。

  • in_debug BOOLEAN:是否包括文件:lineno在图的信息

例子
mysql> CALL ps_trace_thread(25, CONCAT('/tmp/stack-', REPLACE(NOW(), ' ', '-'), '.dot'), NULL, NULL, TRUE, TRUE, TRUE);
+-------------------+
| summary           |
+-------------------+
| Disabled 1 thread |
+-------------------+
1 row in set (0.00 sec)

+---------------------------------------------+
| Info                                        |
+---------------------------------------------+
| Data collection starting for THREAD_ID = 25 |
+---------------------------------------------+
1 row in set (0.03 sec)

+-----------------------------------------------------------+
| Info                                                      |
+-----------------------------------------------------------+
| Stack trace written to /tmp/stack-2014-02-16-21:18:41.dot |
+-----------------------------------------------------------+
1 row in set (60.07 sec)

+-------------------------------------------------------------------+
| Convert to PDF                                                    |
+-------------------------------------------------------------------+
| dot -Tpdf -o /tmp/stack_25.pdf /tmp/stack-2014-02-16-21:18:41.dot |
+-------------------------------------------------------------------+
1 row in set (60.07 sec)

+-------------------------------------------------------------------+
| Convert to PNG                                                    |
+-------------------------------------------------------------------+
| dot -Tpng -o /tmp/stack_25.png /tmp/stack-2014-02-16-21:18:41.dot |
+-------------------------------------------------------------------+
1 row in set (60.07 sec)

+------------------+
| summary          |
+------------------+
| Enabled 1 thread |
+------------------+
1 row in set (60.32 sec)

26.4.4.24的ps_truncate_all_tables()程序

将所有的性能模式的汇总表,重置所有聚集的仪表作为快照。产生一个结果集显示多少桌被截断。

参数
  • in_verbose BOOLEAN:是否显示每个TRUNCATE TABLE在执行该语句

例子
mysql> CALL ps_truncate_all_tables(FALSE);
+---------------------+
| summary             |
+---------------------+
| Truncated 44 tables |
+---------------------+

26.4.4.25的statement_performance_analyzer()程序

创建一个报表服务器上运行报表。意见的基础上计算的整体和/或三角洲活动。

这个程序要求SYSTEM_VARIABLES_ADMINSUPER因为它操纵会议的特权sql_log_bin系统变量在执行过程中禁用二进制日志。

参数
  • in_action ENUM('snapshot', 'overall', 'delta', 'create_tmp', 'create_table', 'save', 'cleanup'):采取行动。这些值是允许的:

    • snapshot:存储快照。默认是使的性能架构的当前内容的快照events_statements_summary_by_digest表通过设置在_表,这可以覆盖复制指定表的内容。快照存储在sys图式tmp_digests临时表

    • overall:生成基于指定的表的内容分析在_表。为全面分析,in_table可以是NOW()使用一种新的快照。这将覆盖现有的快照。使用无效的in_table使用现有的快照。如果在_表NULL没有快照存在,创建一个新的快照。这个在_ Views参数和statement_performance_analyzer.limit配置选项影响本程序的运行。

    • delta:产生一个三角分析。三角计算指定的参考表在_表和快照,它必须存在。这个动作使用sys图式TMP _消化_三角洲临时表。这个in_views参数和statement_performance_analyzer.limit配置选项影响本程序的运行。

    • create_table:创造适合以后使用存储快照常规表(例如,计算三角洲)。

    • create_tmp:创造适合以后使用存储快照临时表(例如,计算三角洲)。

    • save:在指定的表中保存的快照在_表。表必须存在并且有正确的结构。如果没有快照存在,创建一个新的快照。

    • cleanup:删除用于快照和三角洲的临时表。

  • in_table VARCHAR(129):用于一些指定的动作的参数表in_action参数.使用格式db_name.tbl_nametbl_name不使用任何反引号(`)标识符引用字符。时期(.)不支持数据库和表名。

    的意义in_table值为每个in_action价值是个体的详细in_action价值描述

  • in_views SET ('with_runtimes_in_95th_percentile', 'analysis', 'with_errors_or_warnings', 'with_full_table_scans', 'with_sorting', 'with_temp_tables', 'custom')包括它的观点。这个参数是一个配置值,所以它可以包含多个视图的名称,以逗号分隔。默认的是包括所有的观点,除了custom。下面的值是允许的:

配置选项

statement_performance_analyzer()操作可以使用以下配置选项或相应的自定义变量修改(见第26.4.2.1,“sys_config表”):

  • debug“sys.debug

    如果这个选项是ON、生产调试输出。默认值是关闭

  • statement_performance_analyzer.limit@sys.statement_performance_analyzer.limit

    最大行数返回,没有内置的限制的观点。默认值是100。

  • statement_performance_analyzer.view@sys.statement_performance_analyzer.view

    自定义查询或视图的使用。如果选项值包含一个空间,它被解释为一个查询。否则,它必须是一个已经存在的视图,查询的性能架构的名称events_statements_summary_by_digest表不能有任何极限条款的查询或视图的定义如果statement_performance_analyzer.limit配置选项大于0。如果指定一个视图,使用相同的格式为在_表参数.默认值是NULL(没有定义的自定义视图)。

例子

创建一个查询,第九十五位自上次截断的报告events_statements_summary_by_digest11分钟内,三角洲:

  1. 创建一个临时表存储初始快照。

  2. 创建初始快照

  3. 在临时表中保存的初始快照。

  4. 等一分钟

  5. 创建一个新的快照

  6. 的基础上进行新的快照分析。

  7. 执行基于初始和新的快照之间的差异分析。

mysql> CALL statement_performance_analyzer('create_tmp', 'mydb.tmp_digests_ini', NULL);
Query OK, 0 rows affected (0.08 sec)

mysql> CALL statement_performance_analyzer('snapshot', NULL, NULL);
Query OK, 0 rows affected (0.02 sec)

mysql> CALL statement_performance_analyzer('save', 'mydb.tmp_digests_ini', NULL);
Query OK, 0 rows affected (0.00 sec)

mysql> DO SLEEP(60);
Query OK, 0 rows affected (1 min 0.00 sec)

mysql> CALL statement_performance_analyzer('snapshot', NULL, NULL);
Query OK, 0 rows affected (0.02 sec)

mysql> CALL statement_performance_analyzer('overall', NULL, 'with_runtimes_in_95th_percentile');
+-----------------------------------------+
| Next Output                             |
+-----------------------------------------+
| Queries with Runtime in 95th Percentile |
+-----------------------------------------+
1 row in set (0.05 sec)

...

mysql> CALL statement_performance_analyzer('delta', 'mydb.tmp_digests_ini', 'with_runtimes_in_95th_percentile');
+-----------------------------------------+
| Next Output                             |
+-----------------------------------------+
| Queries with Runtime in 95th Percentile |
+-----------------------------------------+
1 row in set (0.03 sec)

...

创建第95百分位查询总报告和10大查询全表扫描:

mysql> CALL statement_performance_analyzer('snapshot', NULL, NULL);
Query OK, 0 rows affected (0.01 sec)                                 

mysql> SET @sys.statement_performance_analyzer.limit = 10;
Query OK, 0 rows affected (0.00 sec)        

mysql> CALL statement_performance_analyzer('overall', NULL, 'with_runtimes_in_95th_percentile,with_full_table_scans');
+-----------------------------------------+
| Next Output                             |
+-----------------------------------------+
| Queries with Runtime in 95th Percentile |
+-----------------------------------------+
1 row in set (0.01 sec)

...

+-------------------------------------+
| Next Output                         |
+-------------------------------------+
| Top 10 Queries with Full Table Scan |
+-------------------------------------+
1 row in set (0.09 sec)

...

使用自定义的视图显示前10查询的总执行时间排序,刷新视图使用的每一分钟手表在Linux的命令:

mysql> CREATE OR REPLACE VIEW mydb.my_statements AS
    -> SELECT sys.format_statement(DIGEST_TEXT) AS query,
    ->        SCHEMA_NAME AS db,
    ->        COUNT_STAR AS exec_count,
    ->        sys.format_time(SUM_TIMER_WAIT) AS total_latency,
    ->        sys.format_time(AVG_TIMER_WAIT) AS avg_latency,
    ->        ROUND(IFNULL(SUM_ROWS_SENT / NULLIF(COUNT_STAR, 0), 0)) AS rows_sent_avg,
    ->        ROUND(IFNULL(SUM_ROWS_EXAMINED / NULLIF(COUNT_STAR, 0), 0)) AS rows_examined_avg,
    ->        ROUND(IFNULL(SUM_ROWS_AFFECTED / NULLIF(COUNT_STAR, 0), 0)) AS rows_affected_avg,
    ->        DIGEST AS digest
    ->   FROM performance_schema.events_statements_summary_by_digest
    -> ORDER BY SUM_TIMER_WAIT DESC;
Query OK, 0 rows affected (0.01 sec)

mysql> CALL statement_performance_analyzer('create_table', 'mydb.digests_prev', NULL);
Query OK, 0 rows affected (0.10 sec)

shell> watch -n 60 "mysql sys --table -e \"
> SET @sys.statement_performance_analyzer.view = 'mydb.my_statements';
> SET @sys.statement_performance_analyzer.limit = 10;
> CALL statement_performance_analyzer('snapshot', NULL, NULL);
> CALL statement_performance_analyzer('delta', 'mydb.digests_prev', 'custom');
> CALL statement_performance_analyzer('save', 'mydb.digests_prev', NULL);
> \""

Every 60.0s: mysql sys --table -e "        ...  Mon Dec 22 10:58:51 2014

+----------------------------------+
| Next Output                      |
+----------------------------------+
| Top 10 Queries Using Custom View |
+----------------------------------+
+-------------------+-------+------------+---------------+-------------+---------------+-------------------+-------------------+----------------------------------+
| query             | db    | exec_count | total_latency | avg_latency | rows_sent_avg | rows_examined_avg | rows_affected_avg | digest                           |
+-------------------+-------+------------+---------------+-------------+---------------+-------------------+-------------------+----------------------------------+
...

26.4.4.26的table_exists()程序

测试是否一个给定的表作为一个常规表的存在,一个TEMPORARY表或视图。该过程返回一个表类型参数.如果一个临时和永久存在的表的名字,TEMPORARY返回

参数
  • in_db VARCHAR(64):在哪个数据库检查表的存在。

  • in_table VARCHAR(64):表的名称来检查是否存在。

  • out_exists ENUM('', 'BASE TABLE', 'VIEW', 'TEMPORARY')返回值。这是一个参数,所以它必须是一个变量的类型可以存储表。在程序运行时,变量必须显示表是否存在下列值之一:

    • '':表名不作为基础存在的表,临时表或视图

    • BASE TABLE:表名为基地的存在(永久)表。

    • VIEW:表名为观

    • TEMPORARY:表名称为临时

例子
mysql> CREATE DATABASE db1;
Query OK, 1 row affected (0.01 sec)

mysql> USE db1;
Database changed
mysql> CREATE TABLE t1 (id INT PRIMARY KEY);
Query OK, 0 rows affected (0.03 sec)

mysql> CREATE TABLE t2 (id INT PRIMARY KEY);
Query OK, 0 rows affected (0.20 sec)

mysql> CREATE view v_t1 AS SELECT * FROM t1;
Query OK, 0 rows affected (0.02 sec)

mysql> CREATE TEMPORARY TABLE t1 (id INT PRIMARY KEY);
Query OK, 0 rows affected (0.00 sec)

mysql> CALL sys.table_exists('db1', 't1', @exists); SELECT @exists;
Query OK, 0 rows affected (0.01 sec)

+-----------+
| @exists   |
+-----------+
| TEMPORARY |
+-----------+
1 row in set (0.00 sec)

mysql> CALL sys.table_exists('db1', 't2', @exists); SELECT @exists;
Query OK, 0 rows affected (0.02 sec)

+------------+
| @exists    |
+------------+
| BASE TABLE |
+------------+
1 row in set (0.00 sec)

mysql> CALL sys.table_exists('db1', 'v_t1', @exists); SELECT @exists;
Query OK, 0 rows affected (0.02 sec)

+---------+
| @exists |
+---------+
| VIEW    |
+---------+
1 row in set (0.00 sec)

mysql> CALL sys.table_exists('db1', 't3', @exists); SELECT @exists;
Query OK, 0 rows affected (0.00 sec)

+---------+
| @exists |
+---------+
|         |
+---------+
1 row in set (0.00 sec)

26.4.5 sys模式存储功能

以下各节描述sys存储模式的功能

26.4.5.1的extract_schema_from_file_name()功能

给定一个文件的路径名,返回表示架构名称路径组件。这个函数假定文件名是在架构目录。为此,它将不工作或使用自己定义的分区表DATA_DIRECTORY表选项

此功能是有用的提取文件I/O信息从性能模式,包括文件路径名的时候。它提供了一个方便的方式来显示模式名称,可以更容易理解比全路径名,可以用于对对象的架构名称加入。

参数
  • path VARCHAR(512):从一个数据文件的完整路径提取模式名称。

返回值

VARCHAR(64)价值

例子
mysql> SELECT extract_schema_from_file_name('/usr/local/mysql/data/world/City.ibd');
+-----------------------------------------------------------------------+
| extract_schema_from_file_name('/usr/local/mysql/data/world/City.ibd') |
+-----------------------------------------------------------------------+
| world                                                                 |
+-----------------------------------------------------------------------+

26.4.5.2的extract_table_from_file_name()功能

给定一个文件的路径名,返回表示表名的路径组件。

此功能是有用的提取文件I/O信息从性能模式,包括文件路径名的时候。它提供了一个方便的方式来显示表的名称,可以更容易理解比全路径名,可以用于对目标表的名称加入。

参数
  • path VARCHAR(512):从一个数据文件的完整路径提取表名称。

返回值

VARCHAR(64)价值

例子
mysql> SELECT extract_table_from_file_name('/usr/local/mysql/data/world/City.ibd');
+----------------------------------------------------------------------+
| extract_table_from_file_name('/usr/local/mysql/data/world/City.ibd') |
+----------------------------------------------------------------------+
| City                                                                 |
+----------------------------------------------------------------------+

26.4.5.3的格式_字节()函数

在字节的值,将其转换为人类可读的格式,返回一个由值和单位指示字符串。根据价值的大小,单位是bytesKIB(kibibytes),MiB(mebibytes),(gibibytes),TiB(tebibytes),或聚异丁烯(pebibytes)。

参数
  • bytes TEXTThe Bytes Value to Format .

返回值

TEXT价值

例子
mysql> SELECT format_bytes(512), format_bytes(18446644073709551615);
+-------------------+------------------------------------+
| format_bytes(512) | format_bytes(18446644073709551615) |
+-------------------+------------------------------------+
| 512 bytes         | 16383.91 PiB                       |
+-------------------+------------------------------------+

26.4.5.4的format_path()功能

给出一个路径名,返回替换匹配下面的系统变量值的子路径,改性后的路径名,为:

datadir
tmpdir
slave_load_tmpdir
innodb_data_home_dir
innodb_log_group_home_dir
innodb_undo_directory
basedir

一个值相匹配的系统变量的值sysvar与字符串替换@ @全球sysvar

参数
  • path VARCHAR(512):格式化路径名

返回值

VARCHAR(512) CHARACTER SET utf8价值

例子
mysql> SELECT format_path('/usr/local/mysql/data/world/City.ibd');
+-----------------------------------------------------+
| format_path('/usr/local/mysql/data/world/City.ibd') |
+-----------------------------------------------------+
| @@datadir/world/City.ibd                            |
+-----------------------------------------------------+

26.4.5.5的format_statement()功能

给定一个字符串(通常代表一个SQL语句),减少它的长度statement_truncate_len配置选项,并返回结果。如果字符串比没有发生截断statement_truncate_len。否则,该字符串的中间部分用省略号代替(...

这个函数的格式可能很长的语句从表中检索性能模式到一个已知的固定的最大长度是有用的。

参数
  • statement LONGTEXT:The statement to format .

配置选项

format_statement()操作可以使用以下配置选项或相应的自定义变量修改(见第26.4.2.1,“sys_config表”):

  • statement_truncate_len@sys.statement_truncate_len

    在返回语句的最大长度format_statement()功能。较长的语句截断长度。默认值是64。

返回值

LONGTEXT价值

例子

默认情况下,format_statement()将报表不超过64字符。设置@sys.statement_truncate_len当前会话的截断长度的变化:

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 |
+-----------------------------------+

26.4.5.6的format_time()功能

给定一个性能模式延迟或等待时间在皮秒,将其转换为人类可读的格式,返回一个由值和单位指示字符串。根据价值的大小,单位是ns(纳秒),我们(微秒),ms(毫秒),S(秒),m(分钟),H(小时),d(天),或W(周)

参数
  • picoseconds TEXT到皮秒的时间值的格式。

返回值

TEXT价值

例子
mysql> SELECT format_time(3501), format_time(188732396662000);
+-------------------+------------------------------+
| format_time(3501) | format_time(188732396662000) |
+-------------------+------------------------------+
| 3.50 ns           | 3.15 m                       |
+-------------------+------------------------------+

26.4.5.7的list_add()功能

添加一个值以逗号分隔的值列表并返回结果。

这个函数和list_drop()可用于操作系统变量如值是有用的sql_modeoptimizer_switch以逗号分隔的值列表

参数
  • in_list TEXT:the list to be修饰。

  • in_add_value TEXT:的值添加到列表中

返回值

TEXT价值

例子
mysql> SELECT @@sql_mode;
+----------------------------------------+
| @@sql_mode                             |
+----------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES |
+----------------------------------------+
mysql> SET @@sql_mode = list_add(@@sql_mode, 'NO_ENGINE_SUBSTITUTION');
mysql> SELECT @@sql_mode;
+---------------------------------------------------------------+
| @@sql_mode                                                    |
+---------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+---------------------------------------------------------------+
mysql> SET @@sql_mode = list_drop(@@sql_mode, 'ONLY_FULL_GROUP_BY');
mysql> SELECT @@sql_mode;
+--------------------------------------------+
| @@sql_mode                                 |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+

26.4.5.8的list_drop()功能

删除一个值由逗号分隔的值列表并返回结果。更多信息,见描述list_add()

参数
  • in_list TEXT:the list to be修饰。

  • in_drop_value TEXT:从下拉列表的值

返回值

TEXT价值

26.4.5.9的ps_is_account_enabled()功能

退货YES是否一个给定的账户的表现图式仪器启用。

参数
  • in_host VARCHAR(60):检查帐户的主机名

  • in_user VARCHAR(32):检查的帐户的用户名称。

返回值

一个ENUM('YES','NO')价值

例子
mysql> SELECT ps_is_account_enabled('localhost', 'root');
+--------------------------------------------+
| ps_is_account_enabled('localhost', 'root') |
+--------------------------------------------+
| YES                                        |
+--------------------------------------------+

_ is the Consumer 26.4.5.10 PS()函数功能的_ _

退货YES是否一个给定的性能模式消费者是启用的,或NULL如果参数不是一个有效的用户名称。

这个功能对于消费者层次的账户,所以消费者不考虑启用除非所有的消费者决定也启用。关于消费层次的信息,参见第25.4.7,“预滤波的消费者”

参数
  • in_consumer VARCHAR(64):对消费者检查名称

返回值

一个ENUM('YES','NO')价值

例子
mysql> SELECT ps_is_consumer_enabled('thread_instrumentation');
+--------------------------------------------------+
| ps_is_consumer_enabled('thread_instrumentation') |
+--------------------------------------------------+
| YES                                              |
+--------------------------------------------------+

26.4.5.11的ps_is_instrument_default_enabled()功能

退货YES是否一个给定的性能架构工具是默认启用。

参数
  • in_instrument VARCHAR(128):检查仪器的名字

返回值

一个ENUM('YES','NO')价值

例子
mysql> SELECT ps_is_instrument_default_enabled('memory/innodb/row_log_buf');
+---------------------------------------------------------------+
| ps_is_instrument_default_enabled('memory/innodb/row_log_buf') |
+---------------------------------------------------------------+
| NO                                                            |
+---------------------------------------------------------------+
mysql> SELECT ps_is_instrument_default_enabled('statement/sql/alter_user');
+--------------------------------------------------------------+
| ps_is_instrument_default_enabled('statement/sql/alter_user') |
+--------------------------------------------------------------+
| YES                                                          |
+--------------------------------------------------------------+

26.4.5.12的ps_is_instrument_default_timed()功能

退货YES是否一个给定的性能架构仪器定时默认。

参数
  • in_instrument VARCHAR(128):检查仪器的名字

返回值

一个ENUM('YES','NO')价值

例子
mysql> SELECT ps_is_instrument_default_timed('memory/innodb/row_log_buf');
+-------------------------------------------------------------+
| ps_is_instrument_default_timed('memory/innodb/row_log_buf') |
+-------------------------------------------------------------+
| NO                                                          |
+-------------------------------------------------------------+
mysql> SELECT ps_is_instrument_default_timed('statement/sql/alter_user');
+------------------------------------------------------------+
| ps_is_instrument_default_timed('statement/sql/alter_user') |
+------------------------------------------------------------+
| YES                                                        |
+------------------------------------------------------------+

26.4.5.13的ps_is_thread_instrumented()功能

退货YES是否一个给定的连接ID启用仪器性能模式,UNKNOWN如果身份是未知的,或无效的如果IDNULL

参数
  • in_connection_id BIGINT UNSIGNED:ID。这是一个连接ID在给定的连接processlist_id的性能架构列threads表或身份证件SHOW PROCESSLIST输出

返回值

一个ENUM('YES','NO','UNKNOWN')价值

例子
mysql> SELECT ps_is_thread_instrumented(43);
+-------------------------------+
| ps_is_thread_instrumented(43) |
+-------------------------------+
| UNKNOWN                       |
+-------------------------------+
mysql> SELECT ps_is_thread_instrumented(CONNECTION_ID());
+--------------------------------------------+
| ps_is_thread_instrumented(CONNECTION_ID()) |
+--------------------------------------------+
| YES                                        |
+--------------------------------------------+

26.4.5.14的ps_thread_account()功能

给定一个性能模式的线程ID,返回user_name@host_name与线程关联的帐户

参数
  • in_thread_id BIGINT UNSIGNED:该线程ID返回账户。该值应该匹配thread_id从一些性能架构列threads表格行

返回值

TEXT价值

例子
mysql> SELECT ps_thread_account(ps_thread_id(CONNECTION_ID()));
+--------------------------------------------------+
| ps_thread_account(ps_thread_id(CONNECTION_ID())) |
+--------------------------------------------------+
| root@localhost                                   |
+--------------------------------------------------+

26.4.5.15的ps_thread_id()功能

返回的性能架构的线程ID对于一个给定的连接ID,或线程ID为当前连接如果连接IDNULL

参数
  • in_connection_id BIGINT UNSIGNED:为连接ID返回ID。这是一个连接ID在给定的线程processlist_id的性能架构列threads表或身份证件SHOW PROCESSLIST输出

返回值

BIGINT UNSIGNED价值

例子
mysql> SELECT ps_thread_id(260);
+-------------------+
| ps_thread_id(260) |
+-------------------+
|               285 |
+-------------------+

26.4.5.16的ps_thread_stack()功能

返回一个JSON格式的堆栈的所有陈述,阶段和事件在性能架构对于一个给定的螺纹ID.

参数
  • in_thread_id BIGINT:线程的跟踪ID。该值应该匹配thread_id从一些性能架构列threads表格行

  • in_verbose BOOLEAN:是否包括文件:lineno在事件的信息

返回值

LONGTEXT CHARACTER SET latin1价值

例子
mysql> SELECT ps_thread_stack(37, FALSE) AS thread_stack\G
*************************** 1. row ***************************
thread_stack: {"rankdir": "LR","nodesep": "0.10",
"stack_created": "2014-02-19 13:39:03", "mysql_version": "8.0.2-dmr-debug-log",
"mysql_user": "root@localhost","events": [{"nesting_event_id": "0",
"event_id": "10", "timer_wait": 256.35, "event_info": "sql/select",
"wait_info": "select @@version_comment limit 1\nerrors: 0\nwarnings: 0\nlock time:
...

26.4.5.17的ps_thread_trx_info()功能

返回包含给定线程信息的JSON对象。这些信息包括当前事务,并声明它已经执行,从性能模式events_transactions_currentevents_statements_history表(这些表的消费者必须能够获得在JSON对象。全部数据)

如果输出超过截断长度(默认为65535),一个JSON对象的错误返回,如:

{ "error": "Trx info truncated: Row 6 was cut by GROUP_CONCAT()" }

类似的错误对象返回的其他警告,在函数执行引发异常。

参数
  • in_thread_id BIGINT UNSIGNED:该线程ID返回交易信息。该值应该匹配thread_id从一些性能架构列threads表格行

配置选项

ps_thread_trx_info()操作可以使用以下配置选项或相应的自定义变量修改(见第26.4.2.1,“sys_config表”):

  • ps_thread_trx_info.max_length@sys.ps_thread_trx_info.max_length

    输出的最大长度。默认值是65535。

返回值

LONGTEXT价值

例子
mysql> SELECT ps_thread_trx_info(48)\G
*************************** 1. row ***************************
ps_thread_trx_info(48): [
  {
    "time": "790.70 us",
    "state": "COMMITTED",
    "mode": "READ WRITE",
    "autocommitted": "NO",
    "gtid": "AUTOMATIC",
    "isolation": "REPEATABLE READ",
    "statements_executed": [
      {
        "sql_text": "INSERT INTO info VALUES (1, \'foo\')",
        "time": "471.02 us",
        "schema": "trx",
        "rows_examined": 0,
        "rows_affected": 1,
        "rows_sent": 0,
        "tmp_tables": 0,
        "tmp_disk_tables": 0,
        "sort_rows": 0,
        "sort_merge_passes": 0
      },
      {
        "sql_text": "COMMIT",
        "time": "254.42 us",
        "schema": "trx",
        "rows_examined": 0,
        "rows_affected": 0,
        "rows_sent": 0,
        "tmp_tables": 0,
        "tmp_disk_tables": 0,
        "sort_rows": 0,
        "sort_merge_passes": 0
      }
    ]
  },
  {
    "time": "426.20 us",
    "state": "COMMITTED",
    "mode": "READ WRITE",
    "autocommitted": "NO",
    "gtid": "AUTOMATIC",
    "isolation": "REPEATABLE READ",
    "statements_executed": [
      {
        "sql_text": "INSERT INTO info VALUES (2, \'bar\')",
        "time": "107.33 us",
        "schema": "trx",
        "rows_examined": 0,
        "rows_affected": 1,
        "rows_sent": 0,
        "tmp_tables": 0,
        "tmp_disk_tables": 0,
        "sort_rows": 0,
        "sort_merge_passes": 0
      },
      {
        "sql_text": "COMMIT",
        "time": "213.23 us",
        "schema": "trx",
        "rows_examined": 0,
        "rows_affected": 0,
        "rows_sent": 0,
        "tmp_tables": 0,
        "tmp_disk_tables": 0,
        "sort_rows": 0,
        "sort_merge_passes": 0
      }
    ]
  }
]

26.4.5.18的quote_identifier()功能

给定一个字符串参数,该函数产生一个合适的引用标识符包含在SQL语句。这是有用的时候是作为一个标识符是一个保留字或包含那些价值(`)字符

参数

in_identifier TEXT的标识符来引用

返回值

TEXT价值

例子
mysql> SELECT quote_identifier('plain');
+---------------------------+
| quote_identifier('plain') |
+---------------------------+
| `plain`                   |
+---------------------------+
mysql> SELECT quote_identifier('trick`ier');
+-------------------------------+
| quote_identifier('trick`ier') |
+-------------------------------+
| `trick``ier`                  |
+-------------------------------+
mysql> SELECT quote_identifier('integer');
+-----------------------------+
| quote_identifier('integer') |
+-----------------------------+
| `integer`                   |
+-----------------------------+

26.4.5.19的sys_get_config()功能

给定一个配置选项的名称,从收益的期权价值sys_config表,或提供的默认值(可无效的)如果选择不存在的表。

如果sys_get_config()返回默认值和值无效的,希望对方能够处理NULL为七个选项

按照惯例,程序调用sys_get_config()首先检查是否存在相应的自定义变量和是非—无效的。如果是这样的话,常规使用的变量的值没有阅读sys_config表如果变量不存在或无效的,常规读取表的期权价值和集值用户定义的变量。有关配置选项和相应的用户定义的变量之间的关系的更多信息,参见第26.4.2.1,“sys_config表”

如果你想检查是否配置选项已被设置,如果没有,使用返回值sys_get_config(),你可以使用ifnull(……)(见例子之后)。然而,这不应该是在一个循环中执行(例如,为结果集中的每一行)因为重复呼叫,作业只在第一次迭代时,使用IFNULL(...)预计将明显低于使用如果(…)然后…最后如果;块(见例后)

参数
  • in_variable_name VARCHAR(128)The name of the配置备选方案for which to return the value .

  • in_default_value VARCHAR(128):如果配置选项没有发现返回的默认值_配置系统

返回值

VARCHAR(128)价值

例子

从获得的配置价值sys_config表,如果不选择表中作为默认回128下降:

MySQL的&#62;SELECT sys.sys_get_config('statement_truncate_len', 128) AS Value;------- |价值| ------- | 64 | -------

一个线性的例子:检查该选项是否已经设置;如果不指定IFNULL(...)结果(使用的价值sys_config表):

MySQL的&#62;SET @sys.statement_truncate_len =-&#62;IFNULL(@sys.statement_truncate_len,-&#62;       sys.sys_get_config('statement_truncate_len', 64));

IF (...) THEN ... END IF;块的例子:检查该选项是否已设置;如果不是,将值从sys_config

IF (@sys.statement_truncate_len IS NULL) THEN  SET @sys.statement_truncate_len = sys.sys_get_config('statement_truncate_len', 64);END IF;

26.4.5.20 _专业版()函数。

这个函数返回的MySQL服务器专业版。

参数

返回值

TINYINT UNSIGNED价值

例子
mysql> SELECT VERSION(), version_major();
+---------------------+-----------------+
| VERSION()           | version_major() |
+---------------------+-----------------+
| 8.0.2-dmr-debug-log |               8 |
+---------------------+-----------------+

26.4.5.21的version_minor()功能

这个函数返回的MySQL服务器的版本。

参数

返回值

TINYINT UNSIGNED价值

例子
mysql> SELECT VERSION(), version_minor();
+---------------------+-----------------+
| VERSION()           | version_minor() |
+---------------------+-----------------+
| 8.0.2-dmr-debug-log |               0 |
+---------------------+-----------------+

26.4.5.22的version_patch()功能

这个函数返回的MySQL服务器的补丁版本。

参数

返回值

TINYINT UNSIGNED价值

例子
mysql> SELECT VERSION(), version_patch();
+---------------------+-----------------+
| VERSION()           | version_patch() |
+---------------------+-----------------+
| 8.0.2-dmr-debug-log |               2 |
+---------------------+-----------------+