一、MySQL系统库简介
开发人员不轻易维护,是DBA的职责;
二、performance_schema 系统库
1、这个库使用的存储引擎是与之同名的,关注数据库运行的性能;
2、这个系统库运行在比较低的级别:
监控MySQL在运行过程中的资源消耗(采集的内容比较底层:磁盘文件,表I/O,表锁等);
3、以监控每个事务的形式实现:
SQL:select,insert,update的执行过程I/O,磁盘
4、维度区分
活跃事务
历史事务
5、存储方式:内存 ---> 非持久化;
6、分类
分类
说明
events_statement_...
-- 事件相关内容
-- 事件id,线程id,具体sql
events_waits_...
-- 等待事件
events_stages_...
--
events_transaction
-- 事务
file_...
-- 文件
memory_..._event
-- 内存事件
setup_...
-- 配置相关
7、查询引擎信息
-- 以下是两个相同效果的查询语句 select * from information_schema.engines; show engines;
8、查询开启状态
show variables like '%performance_schema%';
9、查询开关配置:
select * from setup_consumers; / select * from setup_instruments;
10、查询SQL执行详细信息:
select * from events_statements_current\G;
三、sys 系统库
1、5.6开始支持,排查特定问题;
2、结合了:performance_schema 和 information_schema ;
3、链接 performance_schema 库后使用;
4、开启监控
call sys.ps_setup_enable_instrument('wait');
5、有正常名称和 x$ 名称的表;它们记录的内容一样,但是 x$ 记录的维度更细致(皮秒);
四、information_schema 系统库
1、管理元数据:
记录其他库的基本信息:表、视图、触发器、列、索引;
2、存储方式:
内存,非持久化;
3、这个库中所有的表都是只读;
五、mysql 系统库
1、系统权限库:
存储用户,权限,定义,日志,时区,帮助;
2、user:用户账号信息;
3、db:库的权限;
4、tables_priv:表级别权限;
5、proc:存储过程,系统自带了一些存储过程和函数;
6、prixies_priv:代理权限;
7、进行权限的修改,建议使用 grant revork 等语句;别用DML;
8、grant revork等语句会直接修改内存中的对象,立即可用;
9、DML语句执行完成后只是改了表中数据,不能立即使用,需要flush;
10、统计:
-- 查询开关 show variables like 'innodb_stats_persistent';
11、日志:
日志类型
说明
普通查询日志
-- 记录到表
-- 默认不开启
-- show variables like 'general_log';
-- set global log_output = 'TABLE';
-- set global general_log = ON;
-- select * from mysql.general_log;
慢查询日志
-- 记录到表
-- show variables like 'slow_query_log';
-- set global slow_query_log = 1;
-- show variables like 'long_query_time';
-- set global long_query_time = 10;
-- show variables like 'log_queries_not_using_indexes';
-- set global log_queries_not_using_indexes= ON;
-- show variables like 'log_slow_admin_statements';
-- set global log_slow_admin_statements= ON;
-- select * from mysql.slow_log\G
错误日志
二进制日志(binlog)
中继日志
DDL日志