MySQL中的SYS数据库,它是什么以及如何利用它的功能?

MySQL的sys数据库是用于存储系统表和视图的,它包含了一些关于数据库、表、列等元数据的信息。

MySQL的sys数据库是一个内置的系统库,旨在简化性能监控和诊断工作,它首次在MySQL 5.7版本中引入,通过提供易于阅读的视图、表、存储过程和函数,帮助用户快速了解数据库的运行情况。

MySQL中的SYS数据库,它是什么以及如何利用它的功能?

sys数据库总览

sys库包含一个表、多个视图(共计100个)、存储过程及函数(共48个),这些组件主要用于从performance_schema采集数据,以降低其复杂度,使DBA能更快捷地了解数据库的性能信息。

视图分类与功能

1. 字母开头的视图(共52个)

这类视图显示格式化的数据,更适合人工阅读。

host_summary:服务器层面的统计,如每个IP的连接消耗资源。

user_summary:用户层级的统计,如每个用户的资源消耗。

innodb:InnoDB引擎相关的统计,如缓冲池使用情况。

io:I/O层统计,如每个数据文件的IO请求。

memory:内存使用情况,如每个主机的当前内存使用。

schema:schema级别的统计信息,如表锁等待。

session:会话级别的统计,如当前连接情况。

statement:语句级别的统计,如错误或警告的SQL语句。

wait:等待事件统计,如按延迟分组的等待事件。

2. x$ 开头的视图(共48个)

这类视图显示原始未处理过的数据,适合工具采集。

x$host_summary:原始的服务器层面统计信息。

x$user_summary:原始的用户层级统计信息。

x$innodb:原始的InnoDB引擎相关统计信息。

x$io:原始的I/O层统计信息。

MySQL中的SYS数据库,它是什么以及如何利用它的功能?

x$memory:原始的内存使用情况统计信息。

x$schema:原始的schema级别统计信息。

x$session:原始的会话级别统计信息。

x$statement:原始的语句级别统计信息。

x$wait:原始的等待事件统计信息。

常用查询示例

查看每个客户端IP的连接消耗资源SELECT * FROM host_summary;

查看某个数据文件上的IO请求SELECT * FROM io_global_by_file_by_bytes;

查看每个用户的资源消耗SELECT * FROM user_summary;

查看总共分配的内存SELECT * FROM memory_global_total;

查看当前连接情况SELECT host, current_connections, statements FROM host_summary;

查看正在执行的SQLSELECT conn_id, user, current_statement, last_statement FROM session;

查看最热门的SQLSELECT db, exec_count, query FROM statement_analysis ORDER BY exec_count DESC LIMIT 10;

查看产生最多IO的文件SELECT * FROM io_global_by_file_by_bytes LIMIT 10;

查看请求最多的表SELECT * FROM io_global_by_file_by_bytes WHERE file LIKE '%ibd' ORDER BY total DESC LIMIT 10;

查看被访问最多的表SELECT * FROM statement_analysis ORDER BY avg_latency DESC LIMIT 10;

查看执行了全表扫描或排序操作的SQLSELECT * FROM statements_with_sorting; SELECT * FROM statements_with_full_table_scans;

查看使用了临时表的SQLSELECT db, query, tmp_tables, tmp_disk_tables FROM statement_analysis WHERE tmp_tables > 0 OR tmp_disk_tables > 0 ORDER BY (tmp_tables + tmp_disk_tables) DESC LIMIT 20;

查看占用最多buffer pool的表SELECT * FROM innodb_buffer_stats_by_table ORDER BY allocated DESC LIMIT 10;

MySQL中的SYS数据库,它是什么以及如何利用它的功能?

查看每个库占用的buffer poolSELECT * FROM innodb_buffer_stats_by_schema ORDER BY allocated DESC LIMIT 10;

查看每个连接分配的内存SELECT b.user, current_count_used, current_allocated, current_avg_alloc, current_max_alloc, total_allocated, current_statement FROM memory_by_thread_by_current_bytes a, session b WHERE a.thread_id = b.thd_id;

查看自增长字段的最大值和使用到的值SELECT table_name, column_name, max_value, current_value FROM information_schema.columns WHERE extra = 'auto_increment';

sys_config表简介

在MySQL 5.8中,sys库中的sys_config表用于存储数据库的配置信息,通过修改这个表,可以对系统配置进行持久化管理,即使重启数据库,配置也不会丢失。

variable:配置选项的名称。

value:当前配置选项的值。

set_time:配置项的最后修改时间。

set_by:最后修改配置的用户名。

具体配置项解释

diagnostics.allow_i_s_tables:控制是否扫描INFORMATION_SCHEMA.TABLES表,默认为OFF。

diagnostics.include_raw:决定是否在diagnostics()输出中包含原始数据,默认为OFF。

ps_thread_trx_info.max_length:设置ps_thread_trx_info()函数返回的JSON数据的最大长度,默认为65535字节。

statement_performance_analyzer.limit:限制statement_performance_analyzer()返回的结果的最大行数,默认为100。

statement_performance_analyzer.view:指定statement_performance_analyzer()使用的自定义查询或视图名称,如果为NULL则使用默认视图。

statement_truncate_len:控制format_statement()函数返回的语句文本的最大长度,默认为64字节。

如何修改配置

要修改这些配置,可以通过SET命令来调整自定义变量,然后这些变量会在当前会话中生效。

SET @sys.statement_truncate_len = 32;

这样,format_statement()函数在当前会话中的最大长度将调整为32字节,要恢复默认值,可以将自定义变量设为NULL:

SET @sys.statement_truncate_len = NULL;

配置项的优先级在MySQL 5.8中,sys系统库对配置的读取是有优先级的,每当MySQL的视图、存储过程或函数调用某些配置项时,它们首先会检查是否有相应的会话级自定义配置变量存在,如果存在且非空,系统会优先使用自定义变量的值;否则,将从sys_config表中读取默认配置。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1228026.html

(0)
未希的头像未希新媒体运营
上一篇 2024-10-20 18:59
下一篇 2024-10-19 07:03

相关推荐

  • 程序化交易系统 常规变更&紧急变更的区别

    程序化交易系统的常规变更通常涉及计划内的更新、优化或维护任务,这些变更在非市场交易时间进行,以减少对交易的影响。而紧急变更则是因应突发问题或故障进行的修复,可能需要在市场交易时间内立即实施,以防止损失或系统崩溃。

    2024-06-28
    046
  • 云计算在现代会议中扮演什么角色?

    云计算作为一种现代计算模式,通过互联网提供按需访问的共享计算资源和数据服务,它具备多种特性,这些特性使得云会议等应用得以高效、灵活地运行,以下为云计算的特性以及云会议的功能特性:云计算的特性1、可扩展性(Scalability) – 用户可以根据需求动态增减资源,例如存储空间或计算能力,2、按需自助服务(On……

    2024-09-15
    019
  • 如何查询我的域名注册信息?

    您的域名注册信息通常可以在域名注册商的官方网站上查询到。您可以尝试访问该网站并使用您的域名进行搜索,以获取相关信息。如果您不确定哪个是您的域名注册商,可以尝试在搜索引擎中输入“域名注册商”来查找。

    2024-10-08
    04
  • 台式电脑显卡选购指南

    台式电脑显卡是关键组件,影响图形处理能力。选购时需考虑性能、价格、兼容性和功耗。高性能显卡适合游戏和专业软件,而基础显卡适合日常使用。

    2024-03-01
    096

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入