阅读《高性能mysql第三版》笔记(二)

  • 时间:
  • 浏览:
  • 来源:互联网

阅读《高性能mysql第三版》笔记(二)

前言:全文笔记都是阅读书籍记录的,请各位大佬多多指教,有不对的地方指点一番。谢谢!

(1)基准测试

基准测试(benchmark)是MySQL新手和专家都需要掌握的一项基本技能。验证基于系统的一些假设,确认是否符合实际情况。重现系统中的某一些异常行为,已解决这些异常。

(2)基准测试的策略

2.1 基准测试有两种主要策略:

(1)针对整个系统的整体测试;(集成式)
(2)单独测试MySQL;(单组件式)

2.2 针对整个系统做集成式测试,有一下原因:

  • 用户关注的不仅仅是MySQL的性能,而是整个应用,应该测试整个应用系统;
  • MySQL并非总是应用瓶颈,通过整体测试可以揭示;
  • 只有对应用做整体测试,才能发现各部分之间的缓存带来的影响;
  • 整体应用的集成式测试更能揭示应用的真实表现,而单独组件的测试很难做到这一点。

2.3 基准测试方法
测试结果无用或者不准确:
在这里插入图片描述
其中使用默认的服务器配置,有吸引力还有测试时间太短;
2.4 基准测试工具

  • 集成式测试工具:
    (1)ab:是一个Apache HTTP服务器基准测试工具;
    (2)http_load:可以随机选择测试多个URL,比ab更灵活;
    (3)JMeter:JMeter是一个应用程序,可以加载其他应用并测试其性能。效果较好。
  • 单组件式测试工具:
    (1)mysqlslap:可以模拟服务器的负载,并输出即时信息。它包含在MySQL 5.1的发行包。可以测试并发连接数。
    (2)MySQL Benchmark Suit(sql-bench):在MySQL的发行包中也提供了一款自己的基准测试套件,可以用于不同数据库服务器进行比较测试。好处:包含大量预定义的测试。
    (3)Super Smack,是一款用于MySQL和PostgreSQL的基准测试工具,可以提供压力测试和负载生成。
    (4)Database Test Suite:是开源软件开发实验室涉及到。
    (5)Percona’s TPCC-MySQL Tool,作者开源的,源码地址:https://launchpad.net/perconatools下载
    (6)sysbench:是一款多线程系统压测工具。它可以根据影响数据库服务器性能的各种因素来评估系统的性能。可以测试I/O,操作系统调度器,内存分配,传输速度。sysbench的github学习地址
    benchmark()函数内置测试如图:
    在这里插入图片描述
    benchmark函数测试发现:小数据量查询不大,但是大数据是差距就明显;书本上解释为:小数据量是,缓存命中几率;
    2.5 测试例子
    (1)http_load
    创建 urls.txt文件,在里面输入URL,敲命令 : http_load -parallel 1 -seconds 10 urls.txt
    (2)MySQL基准测试套件
    这个是自带的
    (3)sysbench测试
    2.6 学习sysbench测试
    链接:https://www.jianshu.com/p/d0abdc29cd7a

本文链接http://element-ui.cn/news/show-340094.aspx