业余时间搞了个新玩意
先向大家介绍MySQL运行状态分析诊断工具这个新玩意,其思路很简单,就是遍历 SHOW GLOBAL STATUS
和 SHOW PROCESSLIST
的结果,对可能预示着有性能瓶颈的地方做出预警。主要关注几个方面:
- 是否有明显的等待事件,包括表锁、行锁等待,以及buffer pool wait free事件。
- 是否有产生较多的磁盘临时表、临时文件。
- 是否有长事务、大事务。
- 判断table cache、thread cache等是否够用。
- 其他等等。
判断逻辑基本就这些,无非就是要逐个判断,以及确认要关注哪些状态。
该工具已发布上线到相应链接:https://imysql.com/my-state-diag.html,欢迎试用、提建议。
再说说 my.cnf生成工具(https://imysql.com/my-cnf-wizard.html) 的使用情况,下面是按月份统计,使用次数排名最靠前的10个月:
代码语言:javascript复制mysql> select date_format(t, "%Y-%m") as 'YearMonth',
count(*) as total
from x
group by date_format(t, "%Y-%m")
order by total desc limit 10;
----------- -------
| YearMonth | total |
----------- -------
| 2018-10 | 7455 |
| 2023-06 | 3751 |
| 2022-06 | 1881 |
| 2021-11 | 1386 |
| 2019-04 | 1279 |
| 2018-11 | 1253 |
| 2019-03 | 1127 |
| 2021-06 | 1100 |
| 2023-02 | 1086 |
| 2023-01 | 997 |
----------- -------
看起来还不错。
这个工具是2018年4月上线的,到现在已有5年多,经过多次迭代,从最开始的支持MySQL 5.6直到现在8.0版本,对不少小白用户,多少还是有一些帮助的吧。
Enjoy MySQL :)
全文完。