记一点点performance_schema的简单理解

  • Post author:
  • Post category:其他



背景: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,暂且写到这里把,码字不易,有帮到你的话,不妨打赏一下鼓励鼓励,一分钱也行,我会写更多的=====



版权声明:本文为sdyu_peter原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。