`
javatgo
  • 浏览: 1125340 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

2. 找到瓶颈:水平测试和垂直测试

 
阅读更多

在某些时候,你可能注定需要从MySQL获得更高的性能。但是你应该通过改善什么来提高性能呢?改进一个特定的查询,改进你的数据库表结构,还是改进你的硬件?知道这些的唯一方法是测量你的系统正在做什么,并且得到它在各种情况下的性能。这也是为什么我们把这章放在本书开始的原因。

最好的策略是找到并加强你的应用中组件链里最脆弱的一环。这在你不知道目前或者未来是什么在影响性能的情况下尤其有效。

水平测试(Benchmarking)和垂直测试(profiling)是两个发现瓶颈的最基本实践方法。这两者互相关联,但是又不尽相同。水平测试测量的是你系统的整体性能。这可以帮助你明确一个系统的能力,帮助你明确哪些改变会对系统性能造成影响而哪些不会,帮助你了解在不同的数据下你的系统的表现会怎么样。

与水平测试不同,垂直测试帮助你找到你的系统在哪里花费的时间最多或者在哪里耗费的资源最多。换句话说,水平测试解决“这个系统的性能有多强?”的问题,而垂直测试解决“这个系统的性能为什么这么强?”的问题。

这一章分成两个部分,一个是水平测试,另外一个是垂直测试。开始我们会讨论一下进行水平测试的原因和测试思想,然后介绍一下具体的水平测试技巧。我们将会给读者展示如何计划和设计一个水平测试,如何得到精确的结果,如果运行水平测试以及如何分析结果。第一部分的最后我们将会向读者展示一系列的水平测试工具以及如何使用其中几种的例子。

本章的其余部分懂不了如何对应用和MySQL进行垂直测试。我们将会展示我们在生产环境里使用的现实的垂直测试代码来帮助用户分析应用的性能。我们也将会向读者展示如何记录MySQL查询的日志,分析这些日志,以及如何使用MySQL的状态计数器以及其他的一些工具来分析MySQL以及你的查询语句到底在做些什么。

注:这里将Benchmark翻译为水平测试,而将Profile翻译为垂直测试。我在网上找了好久,也请教了一些人,但是没有一个对Benchmark和Profile比较官方的翻译,因此根据上面对这两个的定义,我觉得水平测试和垂直测试还是比较能表达这两者的实际意思的,因此在后文中就使用“水平测试”和“垂直测试”这两种叫法了。

分享到:
评论

相关推荐

    开源bbs源码java-miaosha:miaosha

    开源 bbs 源码 ...2.水平扩展/垂直扩展; 查询优化之多级缓存: 1.多级缓存屏障系统,优化了系统查询能力; 2.对于读不到的问题,我们尽可能使用本地缓存,使用缓存预热机制;对于脏读,在业务层面

    Node、koa2、mysql 基于mpvue的网易严选商城.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    电影推荐系统:SpringBoot、vue,基于物品的协同过滤算法,IDEA,WebStorm,mysql.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    Java网上书店管理系统(基于MVC模式编写:前端jsp页面、数据库MySQL、服务器Tomcat).zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    [零食商贩] - 基于vue全家桶 + koa2 + sequelize + mysql 搭建的移动商城应用.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    基于Java+Springboot+Vue的宿舍管理系统.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    基于Java+Springboot+Vue的教务管理系统.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    javaweb(jsp)-课程设计-图书购物网站,基于JSP(MVC模式)和MySQL的网上图书购物系统.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    基于MySQL + Node.js + Leaflet的离线地图展示,支持百度、谷歌、高德、腾讯地图.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    SpringBoot+MybatisPlus 分布式项目谷粒商城.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    基于 nodejs express mysql 开发的留言板 demo.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    基于C#试题库管理系统(MySQL).zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    基于Java Swing + MySQL的图书管理系统.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    C++ Qt 基于数据库Mysql学生信息管理系统.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    基于Flask + MySQL的在线请假微信小程序.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    基于Jsp+Servlet+MySQL的会员管理系统.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    独立开发的基于Django+weui+weui.js,mysql的移动电商项目,实现微信认证,登录,微信支付等功能.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    基于Java Swing + MySQL + JDBC 的图书管理系统.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    基于Java SpringBoot + mysql的在线图书展示商城。.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

    Baishop是一款B2C电子商务网站.zip

    它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密...

Global site tag (gtag.js) - Google Analytics