MYSQL 从PS说起,但不止于PS , IS 中innodb buffer 分析(5) -- 附加招聘DEVOPS DBA

745f59592619373f8b41866d66013979.png

招聘信息在文字最末尾。

这已经是这个系列的第五期了,从PS到SYS,基本上这两个可以获取整体的MYSQL8的性能信息(目前学到的需要整体在8.022版本才有之前介绍的所有的功能,8.018可以有90%的功能)。所以选择MYSQL 从高可用的角度以及监控的角度来看,版本至少应该在8.022以上。

言归正在,MYSQL Information schema 本身是从MYSQL 5.0开始有的,记得当时在使用的时候尤其5.5, 对于IS 的感觉和现在对于SYS 的感觉是一样的,也是插件,也不敢开,开了就对系统的性能有影响,那也是差不多有10年前的事情了。当时IS 推出是对于MYSQL是十分重要的,获得MYSQL的信息在没有IS 大多是通过show  engine innodb status; 获得。

转换到MYSQL8 整体的IS 对比之前的 MYSQL 5.X 更规整和调理了,IS 本身是一个虚拟的结构,通过具有全局权限的USAGE,process 等的账号来查看其中的信息。

7299d1b05b432d2e99b4125105502dd3.png

上面的information_schema中的innodb_metrics 可以理解为对于MYSQL 数据库中的所有的信息的记录,举例我们对于dml 操作中的update

cdf8c15e60b01f09914bc82184e017f3.png

下面我们举一个例子

我们针对此时此刻的MYSQL 的UPDATE 操作的个数进行记录,看看一分钟到底进行了多少UPDATE 操作。上图中针对information_schema 中的innodb_metrics 中的update 的数据进行初始化,其中只对count_reset 进行更新,此后的UPDATE 操作就直接在这个 column累加,另外update操作中的重复update是不记录在这里,有效的对产生实际写入磁盘的UPDATE起作用。所以针对某一个时间段统计INSERT ,DELETE ,UPDATE 有了更方便的手段,这里统计的参数 314个,完全覆盖了,如下的方面,包含的数据库操作,数据库底层操作信息,I/O, 数据库操作的性能等等,有点类似SQLserver 中的性能计数器。

| metadata           
| lock               
| server             
| buffer             
| buffer_page_io     
| os                 
| transaction        
| purge              
| undo               
| log                
| compression        
| index              
| adaptive_hash_index
| file_system        
| change_buffer      
| dml                
| sampling           
| ddl                
| icp                
| cpu                
| page_track         
| dblwr              

具体每个详细的功能可以打开表后,针对相关的监控项目与系统的帮助文件进行查询。

2  在MYSQL的表设计中,有些表可能会误使用系统关键字,

 SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, RESERVED FROM information_schema.COLUMNS INNER JOIN information_schema.KEYWORDS ON KEYWORDS.WORD = COLUMNS.COLUMN_NAME WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys' ) ORDER BY TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME;

上面的语句可以通过查询,搜寻到在用户表中,使用了KEY WORD的表

fe7e23dae85fb76e5962ae31cede6ab6.png

针对上面的情况可以开发出很多短时的监控方案,来针对一些突发的事情,

MYSQL 基于对于系统性能的考虑,添加了 information_schema_stats_expirty  变量,通过变量可以控制在MYSQL CACHE 中的数据驻留的刷新的时间。默认这个时间是 1天 86400秒。而MYSQL 5.X 中这个刷新的频率相当于0  无时不刻的在刷新中。

d137cee16836d844c132f33788f8d801.png

在information 中的一些功能有利于我们对MYSQL 整体数据库的使用情况有一些了解例如,一个MYSQL intance中到底有多少表在我们的innodb buffer pool中,我们是可以通过innodb_buffer_page来进行查询的。

ef5379ecc13e73f264365dabc1cdd8b4.png

举例我们还可以通过information中的表来查看到底有多少行数据多少索引,已经加载在我们的innodb buffer 中,来分析那些索引是HOT 的索引,以及多少行数据已经加载到我们的innodb buffer中。

 SELECT table_name,index_name,count(*) as 'index_number',sum(number_records) as 'rows_index'
 FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
       WHERE  page_type = 'index'
group by table_name,index_name;

0be3df28b3ec710a2dc03ad166ac1882.png

查找用户表中的复合索引以及索引名字

select table_name,index_name from STATISTICS
WHERE TABLE_SCHEMA NOT IN ('mysql','sys','performance_schema')
group by index_name,seq_in_index,table_name
having seq_in_index >=2;

8a032e8932789b22e73b3bffd3b6dd54.png

e91de332ae3bee27097534ce45cf7e7b.png

招聘信息:

DEVOPS  DBA  

岗位职责:

1  负责公司数据库运维平台开发,与维护。

2  熟悉主流数据库的简单操作,如MYSQL 或 POSTGRESQL 等

3  参与设计公司级数据库运维平台模块设计和规划

4  协助DBA TEAM 完成自动化工具的编制的部署

职位要求:

1  掌握Python 语言,对于python 有一定的研究 或参与Python 类的devops 工作

2  熟悉LINUX 常用的命令以及python 与数据库之间API 的操作

3  逻辑思维清晰,有责任心,有团队精神,喜欢尝试新技术,热爱学习

4  对于python 的web 框架有相关经验

——————————————————————————————

工作地点:天津(市区)

优势   1   已经有北京DEVOPS 专家,可协同工作,快速成长

         2  数据库方面,只要你敢来 ,就敢让你成为 某一种数据库的专家 MYSQL PG  MONGODB 随意

          3  平台开放性高,没有限制,和你一同设计规划,提供 MYSQL PG MONGODB 的经验,以及部分代码

简历: 邮件地址  liuhuayang@tcsl.com.cn  微信私聊也可  liuaustin3 微信号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值