读书笔记《高性能MySQL》第二章 MySQL基准测试

  这一章,将会是最水的一章。并不是说书写的不好,而是我根本看不下去。这一章大篇幅的讲解了,为什么要进行基准测试,基准测试的策略、方法和指标,以及如何通过测试结果,评估系统的性能。最后,还介绍了一些测试工具、测试案例。

测试的指标:
  1、吞吐量:单位时间内事务处理数。
  2、响应时间或者延迟:任务所需的整体时间。
  3、并发性:在任意时间有多少同时发生的并发请求。
  4、可扩展性:给系统增加一倍的工作,在理想情况下就能获得两倍的结果。

基准测试有两种主要的策略:
  1、集成式 ( full-stack ):针对整个系统的整体测试。
  2、单组件式 ( single-component ):单独测试MySQL。

集成式测试工具:
  1、ab:它是一个Apache HTTP服务器基准测试工具,它可以测试HTTP服务器每秒最多可以处理多少请求。这是个非常简单的工具,只能针对单个URL进行尽可能快的压力测试。
  2、http_load:它和ab类似,但比ab更加灵活。可以通过一个输入文件提供多个URL,http_load在这些URL中随机选择进行测试。也可以定制http_load,使其按照时间比率进行测试。
  3、JMeter:它是一个Java应用程序,可以加载其他应用并测试性能。JMeter比ab和http_load都要复杂的多。例如,它可以通过控制预热时间等参数,更加灵活地模拟真实用户的访问。JMeter拥有绘图接口,还可以对测试进行记录,然后离线重演测试结果。

单组件式测试工具:
  1、mysqlslap:可以模拟服务器的负载,并输出计时信息。它包含在MySQL5.1的发行包中,应该在MySQL4.1或者更高的版本中都可以使用。测试时可以执行并发连接数,并指定SQL语句。如果没有指定SQL语句,mysqlslap会自动生成查询schema的SELECT语句。
  2、MySQL Benchmark Suite:它是单线程的,主要用于测试服务器执行查询的速度,结果会显示哪种类型的操作在服务器上执行得更快。
  3、Super Smack:是一款用于MySQL和PostgreSQL的基准测试工具,可以提供压力测试和负载生成。这是一个复杂而强大的工具,可以模拟多用户访问,可以加载测试数据到数据库,并支持使用随机数据填充测试表。
  4、Database Test Suite:是由开源软件开发实验室设计的,发布在SourceForge网站上,这是一款类似某些工业标准测试的测试工具集。
  5、Percona’s TPCC-MySQL Tool:它是由本书作者开发的,一个类似TPC-C的基准测试工具集,其中有部分是专门为MySQL测试开发的,该工具的源代码可以在 https://launchpad.net/perconatools 下载。
  6、sysbench:是一款多线程系统压测工具。它可以根据影响数据库服务器性能的各种因素来评估系统的性能。例如,可以用来测试文件I/O、操作系统调度器、内存分配和传输速度、POSIX线程,以及数据库服务器等。sysbench支持Lua脚本语言,Lua对于各种测试场景的设置可以非常灵活。sysbench是一个全能测试工具,支持MySQL、操作系统和硬件的硬件测试。

  MySQL还有一个内置的函数:BENCHMARK(),可以测试某些特定操作的执行速度,参数可以是需要执行的次数和表达式。该函数可以很方便地测试某些特定操作的性能,比如通过测试可以发现,MD5()函数比SHA1()函数要快:

SET @input := 'hello world';
SELECT BENCHMARK(1000000, MD5(@input));
SELECT BENCHMARK(1000000, SHA1(@input));

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注