官方基准测试文档
https://dev.mysql.com/doc/refman/8.0/en/optimize-benchmarking.html
官方推荐基准测试方法
- 使用
BENCHMARK(COUNT, expr)
测试MySQL内部函数或者某一个SQL语句。该测试方法无法测试并发 - 使用官方测试工具mysqlslap进行多用户并发测试
- 使用三方测试包SysBench或者DBT2
- 使用实时性能表
performance_schema
查看实时性能信息
为什么要进行基准测试
- 基准测试是了解系统在给定的工作负载下会发生什么的唯一方便有效的方法
- 基准测试可以很好地控制系统的变量,方便对一些假设进行验证
- 了解当前系统的性能状况,为优化提供数据依据
- 模拟比线上系统更高的负载,以找出系统在下一阶段可能会遇到的瓶颈
- 规划未来的业务增长,预估未来需要什么样的硬件
集成式基准测试(full-stack benchmark)
- 更贴近用户使用场景
- 测试整个系统,包括服务器、代码、网络、中间件、数据库等
- 配合单组件基准测试更容易找出瓶颈所在
- 测试设计比较困难,很容易设计出错误的测试数据
单组件基准测试(signle-component benchmark)
- 场景更单纯,数据更容易分析
- 适合业务不明确的项目初期调研
测试指标
- 吞吐量:单位时间内的事务处理数。