高性能MySQL —— 2、MySQL基准测试

本文探讨了MySQL基准测试的重要性,包括验证系统假设、重现问题、测试拓展性等。介绍了整体测试和MySQL单独测试的策略,强调了测试吞吐量、响应时间、并发性和可拓展性等关键指标。同时,列举了基准测试的方法,如使用真实数据、多用户测试,并提到了ab、mysqlslap等基准测试工具。
摘要由CSDN通过智能技术生成

1. 为什么需要基准测试

简单地说,基准测试就是针对系统设计的一种压力测试。
基准测试是唯一方便有效的、可以学习系统在给定工作负载下会发生什么。如:

  1. 验证基于系统的一些假设,确认假设是否符合实际;
  2. 重现系统异常;
  3. 测试系统当前运行情况;
  4. 找出系统随着压力增加可能遇到的拓展性瓶颈;
  5. 规划未来的业务增长;
  6. 测试应用适应可变环境的能力;
  7. 测试不同硬件、软件和操作系统配置;
  8. 验证新设备配置是否正确。

2. 基准测试的策略

主要有两种策略:一种针对整个系统的整体测试;另一种是单独测试MySQL。

整体测试:

  1. 用户关注的是应用整体性能,不只是MySQL;
  2. MySQL并非总是应用瓶颈,整体测试可以揭示这一点;
  3. 整体测试能够发现各部分之间缓存带来的影响;
  4. 更符合实际业务情况。

MySQL测试:

  1. 比较不同的schema或查询的性能;
  2. 针对某个具体问题测试;
  3. 通过快速的“周期循环”避免漫长的基准测试。

2.1 测试何种指标

  1. 吞吐量
  2. 响应时间或者延迟
  3. 并发性
  4. 可拓展性

3. 基准测试的方法

  1. 使用真实数据的全集而不是子集;
  2. 使用正确的数据分布;
  3. 使用真实的分布参数;
  4. 多用户场景进行多用户测试;
  5. 多服务器测试分布式应用;
  6. 与真实用户行为匹配;
  7. 执行不同的查询,相同查询语句MySQL会全部或部分缓存;
  8. 检查是否有错误产生;
  9. 系统预热;
  10. 测试服务器配置与线上保持一致;
  11. 基准测试需要持续一定时间,不能过短。

4. 基准测试工具

集成式测试工具:

  1. ab,Apache HTTP服务器基准测试工具。测试HTTP服务器每秒能处理多少请求;
  2. http_load,也是测试HTTP QPS,更加灵活;
  3. JMeter

单组件式测试工具:

  1. mysqlslap,可以模拟服务器负载并输出计时信息;
  2. MySQL Benchmark Suite,单线程测试查询速度;
  3. Super Smack,压力测试和负载生成;
  4. Database Test Suite,工业标准测试的测试工具集;

benchmark()函数
测试某些特定操作的执行速度。参数可以是执行次数和任意标量表达式。如:

// 比较md5函数和sha1函数的速度
set @input := 'hello world';
select benchmark(1000000, MD5(@input));
select benchmark(1000000, SHA1(@input));
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值