背景:performance_schema与sys为MySQL的默认数据库,有很多关于MySQL性能参数的表,记录一点点理解
===================标准分割线====================
从performance_schema库中的表查询个性化的参数信息,为DBA/测试/开发/运维人员提供事件活动信息,数据库全局状态,单个数据库连接状态,SQL语句执行摘要信息等。
若有特殊化配置要求,可以通过修改setup组的表信息进行配置;
其中setup_instruments定义的收集指标数据多达1000+种,
select * from setup_instruments \g
这里每一种监控工具点都与MySQL源码中定义的监控点相关联;从左到右渐渐细致化;
==========查询存储当前事件活动的表信息============
show tables like '%current%'; #查看当前连接相关的表 ; select * from 相关的表名查看当前活动;
看到这里你会发现,这performance_schema里表太多了,监控工具有上千,看起来就有点乱乱滴;
这时另一个数据库出现了,sys数据库,提供了performance_schema典型的性能调优与监控事项的使用用例,简单理解时把那些工具集成到比较好理解,好看懂得的视图,存储过程,存储函数里。
例如,查询哪些用户占用得资源较多,
仅仅查询单项资源占用,查询以下对应表,
查询哪种类型得活动耗费资源较大:是root用户执行得select语句,共64次,总耗时,最大耗时,锁耗时等信息
查看当前session的信息:线程ID,连接ID,用户/DB,state:正在发送数据,当前执行语句select * ...
查询哪些语句在使用磁盘上的临时表:
查看当前运行的MySQL线程信息:第一个线程是sql/main...thd_id-NO.1,对比想起了C语言里的main函数
大多生产上用的MySQL监控软件是开源的zabbix,grafran,所以我的理解是他们的监控模板也是从performance_schema/sys中取得监控项与监控数据。。
就像Windows系统里有个资源监视器,在任务管理器里的那个,监控软件为类似工作原理
=============end,暂且写到这里把,码字不易,有帮到你的话,不妨打赏一下鼓励鼓励,一分钱也行,我会写更多的=====