摘要:
MySQL是目前最流行的关系型数据库之一,它具有体积小、速度快、成本低、源码开放、可移植等特点。本文基于MySQL Workbench对项目进行了性能调优实践,通过项目测试中的实例阐述如何监控数据库运行状态、查找问题SQL语句、分析SQL执行情况、SQL调优、处理死锁和选取数据库参数等,形成了一套针对MySQL的通用调优方法,为其他涉及MySQL数据库的项目提供性能调优方法参考。
关键字:MySQL、性能测试、性能调优
1 实践背景
当前很多系统使用开源数据库MySQL开展项目实施。在这个背景下,测试人员需要通过在项目测试中的不断实践和经验累积去掌握MySQL数据库性能调优的方法,实现数据库+性能测试技术的自主可控。
本文结合近期多个项目测试中遇到的问题,基于MySQL Workbench对性能调优进行了相关的探索和实践,并根据实践经验进行总结,形成了一套基于MySQL Workbench的性能调优通用方法。
2 基于MySQL Workbench的性能调优方法
在性能调优实践过程中,使用的数据库是MySQL 8.0.18版本,用到的工具主要是MySQL Workbench,它是一款专为MySQL设计的集成化桌面软件,提供了一整套可视化的数据库操作环境,主要功能有数据库模型建立、SQL开发、执行查询语句、查看性能报告、可视化查询计划、管理配置及检查模式、生成ER图、数据迁移等等。
基于MySQL Workbench的性能调优具体流程见图1。
图1 MySQL数据库性能调优方法流程图
(1)首先使用3.1介绍的方法监控数据库运行状态,判断系统是否存在周期性性能问题。
如果是,可通过增加缓存或修改缓存失效策略来减少MySQL服务器的压力。然后判断是否解决性能问题
如果是,则结束。
如果否,可通过增加硬件资源如服务器内存或CPU等来解决性能问题。
如果否,系统不存在周期性性能问题也就是系统长时间持续有性能问题,则使用3.2介绍的方法查找问题SQL语句。
(2)查找到问题SQL后,使用3.3介绍的方法进行SQL执行情况分析。
(3)然后判断SQL是否等待时间长。
如果是SQL等待时间长,则判断是否有死锁。
有死锁,则按照3.5介绍的方法进行死锁处理。
无死锁,则按照3.6介绍的方法进行数据库参数调整。
如果否,则判断SQL是否执行时间长。
如果SQL执行时间长,则按照3.4介绍的方法进行SQL调优。然后判断性能问题是否已解决。
如果已解决,则结束调优。
如果未解决,则参照3.7介绍的方法进行数据模型优化。
3 MySQL数据库性能调优实践
本章节主要介绍在项目测试过程中的性能调优实践过程,包括了监控数据库运行状态、查找问题SQL、SQL执行情况分析、SQL调优、死锁处理、数据库参数选取、数据库模型设计等几个方面的内容。
版权声明:本文出自《51测试天地》第六十二期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任