2023年12月7日发(作者:)
漫谈MySQL四-系统数据库performance_schema详解
目录
1.系统数据库的简介
以下系统库的介绍,主要是扩展大家的知识面,因为系统库中的数据很重要, 没有对 MySQL 有全面通盘的了解,不宜去操作其下
的数据,而且对系统库的管理维护是是 DBA 的职责。
MySQL 有几个系统数据库,这几个数据库包含了 MySQL 服务器运行过程中所需的一些信息以及一些运行状态信息,我们现在稍微了解
一下。
performance_schema
这个数据库里主要保存 MySQL 服务器运行过程中的一些状态信息,算是对
MySQL 服务器的一个性能监控。包括统计最近执行了哪些语句,在执行过程的每个阶段都花费了多长时间,内存的使用情况等等信息。
sys
这个数据库主要是通过视图的形式把 information_schema 和performance_schema 结合起来,让程序员可以更方便的了解 MySQL
服务器的一些性能信息。
information_schema
这个数据库保存着 MySQL 服务器维护的所有其他数据库的信息,比如有哪些表、哪些视图、哪些触发器、哪些列、哪些索引。这些信息
并不是真实的用户数据,而是一些描述性信息,有时候也称之为元数据。
mysql
这个数据库核心,它存储了 MySQL 的用户账户和权限信息,一些存储过程、事件的定义信息,一些运行过程中产生的日志信息,一些帮
助信息以及时区信息等。
mance_schema详解
2.1. 什么是performance_schema?
MySQL 的performance_schema 是运行在较低级别的用于监控MySQL Server运行过程中的资源消耗、资源等待等情况的一个功能特
性,它具有以下特点。
performance_schema 提供了一种在数据库运行时实时检查Server 内部执行情况的方法。performance_schema 数据库中的表使
用 performance_schema 存储引擎。该数据库主要关注数据库运行过程中的性能相关数据。
performance_schema 通过监视Server 的事件来实现监视其内部执行情况,“事件”就是在 Server 内部活动中所做的任何事情以
及对应的时间消耗,利用这些信息来判断 Server 中的相关资源被消耗在哪里。一般来说,事件可以是函数调用、操作系统的等待、
SQL 语句执行的阶段[如 SQL 语句执行过程中的 parsing(解析)或 sorting(排序)阶段]或者整个 SQL 语句的集合。采集事件可
以方便地提供 Server 中的相关存储引擎对磁盘文件、表 I/O、表锁等资源的同步调用信息。
当前活跃事件、历史事件和事件摘要相关表中记录的信息,能提供某个事件的执行次数、使用时长,进而可用于分析与某个特定线程、
特定对象(如mutex 或 file)相关联的活动。
performance_schema 存储引擎使用 Server 源代码中的“检测点”来实现事件数据的收集。对于 performance_schema 实现机制
本身的代码没有相关的单独线程来检测,这与其他功能(如复制或事件计划程序)不同。收集到的事件数据被存储在
performance_schema 数据库的表中。对于这些表可以使用 SELECT 语句查询,也可以使用 SQL 语句更新
performance_schema 数据库中的表记录(比如动态修改 performance_schema 的以“setup_”开头的配置表,但要注意,配置
表的更改会立即生效,这会影响数据收集)。
performance_schema 的表中数据不会持久化存储在磁盘中,而是保存在内存中,一旦服务器重启,这些数据就会丢失(包括配置表
在内的整个performance_schema 下的所有数据)。2.2 performance_schema 使用
过上面介绍,相信你对于什么是 performance_schema 这个问题了解得更清晰了。下面开始介绍 performance_schema 的使用。
2.2.1 检查当前数据库版本是否支持
performance_schema 被视为存储引擎,如果该引擎可用,则应该在 INFORMATION_S 表或 show engines 语句的
输出中可以看到它的 Support 字段值为 YES,如下所示。
当我们看到 performance_schema 对应的 Support 字段值为 YES 时,就表示当前的数据库版本是支持 performance_schema 的。但
确认了数据库实例支持performance_schema 存储引擎就可以使用了吗?NO,很遗憾,performance_schema 在 MySQL 5.6 及之前
的版本中默认没有启用,在 MySQL 5.7及之后的版本中才修改为默认启用。
1
2
3
启用performance_schema
如果要显式启用或关闭performance_schema,则需要使用参数


发布评论