sys
数据库是用于存储系统级信息和元数据的特殊数据库,通常不建议直接操作。MySQL中的sys数据库是一个辅助库,旨在帮助数据库管理员(DBA)更轻松地分析和解决数据库性能问题,它通过提供一系列预定义的视图和函数,简化了对performance_schema中数据的访问和分析,以下是关于MySQL sys数据库的介绍:
sys系统库的基础环境
1、MySQL版本要求:sys系统库支持MySQL 5.6及以上版本,推荐使用MySQL 5.8或更高版本,因为这些版本已经充分支持sys系统库的所有功能。
2、启用performance_schema:sys系统库的数据来源于performance_schema,因此必须启用performance_schema,在MySQL 5.8中,默认情况下performance_schema通常是启用的,可以通过以下命令确认是否启用:
```sql
SHOW VARIABLES LIKE 'performance_schema';
```
如果未启用,可以通过修改MySQL配置文件(my.cnf或my.ini)来启用:
```ini
[mysqld]
performance_schema = ON
```
3、用户权限要求:要完全使用sys系统库,用户需要具备SELECT、EXECUTE、INSERT和UPDATE等特定权限,为用户分配权限的命令如下:
```sql
GRANT SELECT ON sys.* TO 'dba_user'@'localhost';
GRANT EXECUTE ON sys.* TO 'dba_user'@'localhost';
GRANT INSERT, UPDATE ON sys.sys_config TO 'dba_user'@'localhost';
```
4、访问相关表的权限:sys系统库访问并处理其他系统库中的表数据,如performance_schema、INFORMATION_SCHEMA等,因此用户还需要具备相应的权限。
5、启用所需的instruments和consumers:sys系统库依赖performance_schema中的instruments(性能事件监控)和consumers(性能数据消费者)来收集不同的性能事件,要确保sys系统库可以正常工作,需要启用以下instruments和consumers:wait instruments、stage instruments和statement instruments。
sys系统库的主要功能
1、视图:sys系统库包含多种视图,用于汇总performance_schema中的数据,以更易于理解的形式展示,这些视图分为两类:
字母开头的视图,适合人阅读,显示格式化的数据。
x$开头的视图,适合工具采集数据,原始类数据。
2、存储过程:sys系统库提供了多个存储过程,用于配置性能数据库以及生成诊断报告等操作。ps_setup_enable_instrument
存储过程用于启用指定的instrument。
3、存储函数:sys系统库还包含了一些存储函数,用于查询性能数据库的配置和格式化服务。
sys系统库的应用场景
1、资源使用情况分析:通过sys系统库,可以快速了解谁使用了最多的资源,基于IP或用户进行统计。
2、连接来源及SQL执行情况:sys系统库可以帮助分析大部分连接来自哪里,以及发送的SQL情况。
3、IO热点分析:通过各种汇总视图,可以分析资源消耗、IO热点、延迟语句等,对数据库性能进行深度监控和诊断。
4、错误SQL语句分析:sys系统库能够识别出出错的SQL语句,以及执行时间超长或全表扫描的SQL语句。
FAQs
1、问题一:如何查看当前MySQL的版本?
答案:可以使用以下命令查看当前MySQL的版本:
```sql
SELECT VERSION();
```
2、问题二:如何删除sys系统库?
答案:如果不需要sys系统库,可以在初始化之后手动删除,首先备份数据,然后初始化实例,最后恢复备份中的数据,删除sys库的命令如下:
```sql
DROP DATABASE sys;
```
MySQL的sys数据库是一个强大的工具,它通过提供丰富的视图、存储过程和存储函数,极大地简化了数据库性能问题的分析和解决过程,对于希望深入了解和优化数据库性能的DBA来说,掌握sys数据库的使用是必不可少的技能。