mysql性能基准测试_mysql性能优化(二)mysql基准测试

一:Mysql基准测试

1、什么是基准测试

数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。

基准测试与压力测试

基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,更加简单、直接、易于测试,数据可以由工具生成,不要求真实;而压力测试一般考虑业务逻辑(如购物车业务),要求真实的数据。

2、基准测试的作用

对于多数Web应用,整个系统的瓶颈在于数据库;原因很简单:Web应用中的其他因素,例如网络带宽、负载均衡节点、应用服务器(包括CPU、内存、硬盘灯、连接数等)、缓存,都很容易通过水平的扩展(俗称加机器)来实现性能的提高。而对于MySQL,由于数据一致性的要求,无法通过增加机器来分散向数据库写数据带来的压力;虽然可以通过前置缓存(Redis等)、读写分离、分库分表来减轻压力,但是与系统其它组件的水平扩展相比,受到了太多的限制。

而对数据库的基准测试的作用,就是分析在当前的配置下(包括硬件配置、OS、数据库设置等),数据库的性能表现,从而找出MySQL的性能阈值,并根据实际系统的要求调整配置。

3、基准测试的指标

常见的数据库指标包括:

TPS/QPS:衡量吞吐量。(单位时间内处理的事务数TPS;单位时间内锁处理的查询量QPS)

响应时间:包括平均响应时间、最小响应时间、最大响应时间、时间百分比等,其中时间百分比参考意义较大,如前95%的请求的最大响应时间。。

并发量:同时处理的查询请求的数量。

4、基准测试的分类

对MySQL的基准测试,有如下两种思路:

(1)针对整个系统的基准测试:通过http请求进行测试,如通过浏览器、APP或postman等测试工具。该方案的优点是能够更好的针对整个系统,测试结果更加准确;缺点是设计复杂实现困难。

(2)只针对MySQL的基准测试:优点和缺点与针对整个系统的测试恰好相反。

在针对MySQL进行基准测试时,一般使用专门的工具进行,例如mysqlslap、sysbench等。其中,sysbench比mysqlslap更通用、更强大,且更适合Innodb(因为模拟了许多Innodb的IO特性),下面介绍使用sysbench进行基准测试的方法。

二、Mysql基准测试工具

2.1Mysqlslap

Mysql自带的基准测试工具,岁mysql一起安装

~常用参数说明

~1 --auto-generate-sql 有系统自动生成sql脚本进行测试

~2 --auto-generate-sql-autoincrement 在生成的表中增加自增ID

~3 --auto-genetate-load-type 指定测试中使用的查询类型(增删改查)

~4 --auto-generate-sql-write-number 指定初始化数据时生成的数据量

~5 --concurrency 指定并发线程数量

~6 --engine 指定测试表的存储引擎,可以用逗号分隔多个存储引擎

~7 --no-drop         指定不清理测试数据

~8 --iterations      指定测试运行的次数

~9 --number-of-queries 指定每一个线程执行的查询数量

~10 --create-schema     指定了用于执行测试的数据库的名字

~11 --query 指定自定义sql脚本

~12 --only-print  并不运行测试脚本,二十八生成的脚本打印出来

-- 检查系统中是否安装了mysqlslslap工具

通过命令:mysqlslap -help

2.2 Mysql基准测试工具sysbench

安装:地址==> https://github.com/akopytov/sysbench/archive/0.5.zip

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值