在我们日常的测试工作中,不可避免的要对mysql的性能进行测试,对于大部分测试人员而言,工具的选择可能就是第一道门槛。
在这里,我整理了几款MySQL性能测试几款常用的工具,大家可以收藏,以备不时之需。
mysqlslap
mysqlslap可以用于模拟服务器的负载,并输出相关信息,已经包含子啊了MySQL5.1的发行包中,测试时可以执行并发连接数,并指定SQL 语句(可以在命令行上执行,也可以把SQL 语句写入到参数文件中)。如果没有指定SQL 语句,mysqlslap 会自动生成查询schema 的SELECT 语句。
MySQL BenchMark Suite
在MySQL的官方发行包中提供了一套官方自己的基准测试套件,可以用于在不同数据库服务器上进行基准比较测试。
要注意的是,这个工具是单线程的,主要用于测试服务器的查询速度,用于来测试哪种类型的操作在服务器上执行得更加有效。
这个工具的最大优点就是包含了大量的预定义的测试,易于使用,可以轻易的比较不同存储引擎或不同配置下的性能。
也可以用于更高层次的测试,例如比较两个服务,当然也可以只执行预定测试的子集,例如只测试select、或update、或delete的性能等等,完全可以根据你的需求来选择。
因为其是单线程的,所以其测试数据集较小,且无法指定测试数据,同时同一个测试多次运行的结果可能也会也会有较大的差异。因单线程模式,导致了无法发挥多核的性能。
Super Smack
Super Smack是一款用于MySQL 和PostgreSQL的基准测试工具,可以提供压力测试和负载生成。这是一个复杂而强大的工具,可以模拟多用户访问,可以加载测试数据到数据库,并支持使用随机数据填充测试表。测试定义在"smack"文件中,smack 文件使用一种简单的语法定义测试的客户端、表、查询等测试要素。
在使用Super Smack之前,我们需要先安装它。Super Smack是基于C语言编写的,可以在Linux和类Unix系统上运行。
1. 下载Super Smack的源代码包
2. 解压源代码包
3. 打开终端,进入解压后的目录
4. 执行以下命令编译和安装Super Smack
sysbench
sysbench是一款多线程系统压测工具。它可以根据影响数据库服务器性能的各种因素来评估系统的性能。例如,可以用来测试文件I/O、操作系统调度器、内存分配和传输速度、POSIX 线程,以及数据库服务器等。sysbench 支持Lua 脚本语言,Lua 对于各种测试场景的设置可以非常灵活。sysbench 是我们非常喜欢的一种全能测试工具,支持MySQL、操作系统和硬件的硬件测试。
SysBench 是一个基于 LuaJIT 的可编写多线程基准测试工具。它最常用于数据库基准测试,但也可用于创建不涉及数据库服务器的任意复杂工作负载。
特性:
提供大量的速率和延迟的统计数据,包括延迟的百分比和柱状图。
即使有成千上万的并发线程,开销也很低。sysbench 能够每秒产生和跟踪数以亿计的事件。
通过在用户提供的 Lua 脚本中实现预定义的钩子,可以轻松创建新的基准。
也可以作为一个通用的 Lua 解释器,只需在你的脚本中用#!/usr/bin/sysbench替换#!/usr/bin/lua。
笔者推荐你掌握后三种工具,尤其是你的工作涉及数据库的研发时,是必备工具。
领取专属 10元无门槛券
私享最新 技术干货