【mysql】sys系统库初相识

1、sys系统库支持的环境

  • MySQL5.6及以上的版本,我这里使用的是MySQL5.7.39。
  • sys系统库的数据来源是performance_schema系统库,所以使用sys系统库时要打开performance_schema,sys系统库提供了一些替代直接访问performance_schema系统库的视图
  • 访问sys系统库时需要的一些权限。(其实并不是要你在创建管理员的时候一定要按照下面几条精准的分配权限,了解这些权限可以知道使用sys库的数据表时可能会涉及到哪些数据库的增删改查操作,)
1、对所有sys库的表和视图有select权限。
2、对sys的存储过程和函数有execute权限。
3、对sys_config表有insert、update权限。
4、对某些特定的sys系统库存储过程和函数需要额外权限,如ps_setup_save()存储过程,需要与临时表相关的权限。
5、还要有与被sys系统库执行访问的对象相关的权限。
6、INFORMATION_SCHEMA.INNODB_BUFFER_PAGE表的PROCESS权限。
  • 使用sys库的存储过程开启instruments和consumers。
    建议使用call命令执行存储过程,exec适用于sql plus客户端工具
call sys.ps_setup_enable_instrument('transaction');
call sys.ps_setup_enable_consumer('history');

【mysql】sys系统库初相识_第1张图片

  • 查看存储过程内部实现,begin和end之间也就是白色部分就是该存储过程的内部语句。
show create procedure sys.ps_setup_enable_instrument;

【mysql】sys系统库初相识_第2张图片

  • 恢复到instruments和consumers的开启状态为默认配置
sys.ps_setup_reset_to_default(TRUE);

2、sys的一些基础使用

  • sys中的视图大多分为两种,无前缀的和以 x$ 为前缀的。其中以 x$ 为前缀的视图的时间时段使用的是原始数据,无前缀的将时间转换为了有单位的。
  • sys具有两个表precesslist和session,其中processlist表可以看看所有进程的状态,而session表不能查看后台线程和守护线程。

你可能感兴趣的:(mysql,数据库,sql)