2、mysql性能监控performance(mysql数据库性能监控工具)

  本篇文章为你整理了2、mysql性能监控performance(mysql数据库性能监控工具)的详细内容,包含有mysql性能监控工具和调优 mysql数据库性能监控工具 mysql性能测试慢sql监控 mysql性能排查 2、mysql性能监控performance,希望能帮助你了解 2、mysql性能监控performance。

  
 

  聊到mysql时候,首先要知道mysql的一个层次,

  server

  首先客户端要发送请求和服务端进行连接,所有先有个连接器,会有一些认证,比如用户名和密码的匹配,
 

  第二步,客户端和服务端连接后,要发送一些请求,所以有个分析器。客户端发来的sql语句本质上就是个字符串,所以要进行解析切分,进行语法分析,通过关键字比如from、where。。。
 

  比如有个sql A表join B表,那到底先读A表还是B表的数据呢,所以要有个优化器,说明mysql自带的已经有优化了,但这些优化还远不够。优化分为RBO和CBO,

  RBO:基于规则的优化,比较基础

  CBO:基于成本基于代价的优化,目前企业中更多的是这种方式的优化

  优化好后,接下来是执行器,执行器主要是和存储引擎进行一个挂钩,就是要从磁盘里面获取数据了。
 

  但是取数据不是乱取的,所以我们写sql时候是绝对不许写select *的,归根到底还是IO问题,IO从硬件层面无法避免的,所以要减少IO的量或者减少IO的次数,但不管怎么样,我们是想要尽量少的从磁盘里读取数据。
 

  在mysql8版本之前,还有的东西叫查询缓存,不过在mysql8之后就被废弃了,因为在我们在使用关系型数据库时候,数据的变更是非常频繁的,如果一些常量枚举的数据可以放在缓存里,但如果是经常变更的数据,就不要放进去了,所以就把查询缓存剔除掉了。

  总结:
 

  如图:
 

  
 

  进入mysql命令行,随便写个sql查询一个表,这个sql执行的很快,可以看到(0.00 sec),难道是执行这条sql没有一点的耗时吗?肯定不可能。
 

  我们可以设置set profiling=1;
 

  设置成功后,可以使用命令:

  

show profiles;

 

  

 

  可以看到执行的sql具体耗时
 

  
 

  除此之外,还可以执行

  

show profile;

 

  

 

  可以看到具体的在哪些阶段耗时多少
 

  
 

  如图可以看到主要是在starting准备数据时候和Sending data 发送数据时候耗时较多。

  上面只是执行了一个sql,如果是执行了多个sql,再去执行show profiles; 就会显示所有执行过的sql
 

  
 

  既然显示了所有执行过的sql,如果还是只执行show profile;,就显示只有最后一条执行过的sql的具体执行耗时
 

  
 

  如果想看哪一个sql具体耗时,通过第一列的Query_ID来查看,比如查看第2个sql执行耗时

  

show profile for query 2;

 

  

 

  执行后显示:
 

  如果光看以上的还不够,还可以加一些属性来查看
 

  官网显示:
 

  
 

  比如查看CPU:

  

show profile cpu;

 

  

 

  
 

  可以通过列字段看到用户使用cpu和系统使用cpu的时间参数值
 

  如果想看更具体的,可以执行show profile all; 自己试试。

  Performance Schema

  mysql官网说:在后期的mysql高版本中会废弃掉通过设置set profiling=1;然后查看sql的执行效率,而是通过Performance Schema
 

  执行mysql命令:

  

show databases;

 

  

 

  
 

  可以看到有个preformance_schema数据库
 

  然后使用这个数据库use preformance_schema;
 

  查看里面的表show tables;,可以查看到里面的87个表。
 

  看到这么多表不要慌,根据官网提供的说明来使用它:
 

  如果之前没有做过设置的话,默认是开启的,如果要手动关闭,必须要打开mysql的一个配置文件,在目录vi /etc/my.cnf文件中进行修改

  通过show create table setup_consumers;来查看创建表的时候的表结构
 

  performance_schema库下的表可以按照监视不同的纬度就行分组分类。

  Performance Schema 默认是开启的,但是里面具体的值并不是默认开启的,查看:

  

select * from setup_instruments;

 

  

 

  可以看到很多属性是否开启,属性非常多,其中有两列

  ENABLED 表示属性监控是否开启

  TIMED 表示计时器是否开启

  通过查询events_waits_current表来得知当前server正在做什么

  

select * from events_waits_current\G

 

  

 

  该表中每个线程只包含一行数据,用于显示每个线程的最新监视事件

  具体的Performance Schema详细介绍和操作参考:https:///abiu/p/16894713.html

  以上就是2、mysql性能监控performance(mysql数据库性能监控工具)的详细内容,想要了解更多 2、mysql性能监控performance的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: