2023年12月7日发(作者:)

MySQL系统库-SYS系统库

在大公司,重要的数据库大多由DBA把守,这样对我们后台开发来说就缺少了高级权限去操作数据库的机会。所以想深入研究DB的哥们还是靠自

己主动去找一两款开源数库去研究一下,我比较推荐MySQL和PG的。给自己定一个高一点的目标就是要拥有修改源码去优化和改写数据库的能

力。

好了,废话不多说,先玩熟系统库吧。

系统库特点

sys系统库通常是提供给专业的DBA人员排查一些特定的问题使用。其下所涉及的各项查询多少都会对性能有一定影响。

在使用上:sys系统库支持MySQL6.5或更高版本,不支持MySQL5.5.x及以下版本

因为sys系统库提供了一此后代替直接访问performance_schema的视图,所以必须启用performance_schema, sys

系统库的大部分功能才能正常使用。

要完全访问sys系统库,用户必须具有数据库的管理员权限。

要充分使用sys系统库的功能,需要启用某些performanc_schema的功能。

sys系统库本身已经提供了启用所需要功能的存储过程。

比如:

启用所有的wait instruments:

启用所有事件类型的current表:

注意:performance_schema的默认配置就可以满足sys系统库的大部分数据收集功能。启用所有需要的功能对性能产生一定的影响,最好仅启

用所需的配置。

系统库的使用

如果使用了USE语句切换默认数据库,那么就可以直接使用sys系统库下的视图进行查询,就像查询某个库下的表一样操作。也可以使用

b__name、 db_ure_name、db__name 等方式,在不指定默认数据库的 情况下访问sys系统库中的对象

(这叫作名称限定对象引用)。

在sys系统库下包含很多视图,它们以各种方式对 performance_schema 表进行聚合计算展示。这些视图大部分是成对出现的,两个视图名称

相同,但有一 个视图是带“x$”前缀的,例如:

host_summary_by_file_io和 x$host_summary_by_file_io,

代表按照主机进行汇总统计的文件 I/O 性能数据, 两个视图访问的数据源是相同的,但是在创建视图的语句中,不带“x

”前缀的视图显示的是原始的数据(单

位是皮秒)。

查询表的增、删、改、查数据量和 I/O 耗时统计

除此之外通过sys还可以查询查看InnoDB缓冲池中的热点数据、查看是否有事务锁等待、查看未使用的,冗余索引、查看哪些语句使用了全表扫

描等等。