本篇文章主要跟大家详细的介绍一下如何在MySQL系统数据库中做性能负载诊断,由于内容简单易懂,对大家学习或者使用MySQL具有一定的参考学习价值,感兴趣的朋友可以参考下, 希望大家看完这篇文章之后有所收获。
某大师曾说过,像了解自己的老婆 一样了解自己管理的数据库,个人认为包含了两个方面的了解:
1、在稳定性层面来说,更多的是关注高可用、读写分离、负载均衡,灾备管理等等high level层面的措施(就好比要保证生活的稳定性)
2、在实例级别的来说,需要关注内存、IO、网络,热点表,热点索引,top sql,死锁,阻塞,历史上执行异常的SQL(好比生活品质细节)MySQL的performance_data库和sys库提供了非常丰富的系统日志数据,可以帮助我们更好地了解非常细节的,这里简单地列举出来了一些常用的数据。
sys库是以较为可读化的方式封装了performance_data中的某些表,因此这些个数据来源还是performance_data库中的数据。
这里粗略列举出个人常用的一些系统数据,可以在实例级别更加清楚地了解MySQL的运行过程中资源分配情况。
Status中的信息
MySQL的status变量只是给出了一个总的信息,从status变量上无法得知详细资源的消耗,比如IO或者内存的热点在哪里,库、表的热点在哪里,如果想要知道具体的明细信息就需要系统库中的数据。
前提要开启performance_schema,因为sys库的视图是基于performance_schema的库的。
内存使用:
内存/innodb_buffer_pool使用
概要innodb_buffer_pool的使用情况summary,已知当前实例26214416/1024 = 4096MB buffer pool,已使用2326016/1024 363MB
innod