【mysql】mysql基准测试
基准测试定义
基准测试其实是一种测量和评估软件性能指标的方法,用于建立某个时间点的性能基准,以便当系统的软硬件发生变化的时候重新进行基准测试以评估变化对性能的影响。所以对系统性能的测量,才能知道我们的优化是否达到了预期的效果,这样对系统的性能测试叫做基准测试,也是针对系统设置的一种压力测试,观察系统在不同压力下的表现,评估系统的容量。不过基准测试和压力测试还是有点区别的。
基准测试要尽量的直接,简单,各个测试后结果要容易比较,基准测试所用的数据的都是测试工具所生成的,只能用于评估服务器的处理能力。而压力测试通常是针对真实的业务数据进行测试,获得系统真实所能承受的压力。所用基准测试是一种简化的压力测试,并且基准测试不关心具体的业务逻辑,所进行的测试是和真实的业务并没有关系。
基准测试的目的
1.建立mysql服务器的性能基准线,确定当前mysql服务器运行情况。可以从历史记录去比较来诊断应用中出现的问题。
2.模拟比当前系统更高的负载,以找出系统扩展的瓶颈。通过增加数据库的并发,来观察QPS,TPS的变化,确定并发量和性能之间的最优关系。
3.可以测试不同的硬件(比如ssd固态硬盘和传统机械硬盘中随机写性能哪个更快),软件(升级mysql版本是否能改善mysql的性能,以及不同的存储引擎的性能),操作系统(linux不同文件系统,磁盘分区对数据库是否有影响)的配置。
4.验证新的硬件设备上线前是否配置正确达到预期的结果,同时了解新设备的性能基准线。
如何基准测试
1.对整个系统进行测试。
优点:能够测试整个系统的性能,包括web服务器,缓存,程序,mysql数据库等。能反映出系统中各个接口之间的性能问题。
缺点:测试设计复杂,花费的时间较长。
2. 单独对组件的测试,比如mysql。只更新了mysql硬件,或者更新了mysql的索引,所以这时候仅需要对mysql测试就行。
优点:测试简单,所耗费时间比较短。可以针对某个具体问题去测试。
缺点:无法全面了解真个系统的性能基准线。
mysql基准测试的常见指标
1.单位时间内所执行完的事务数(TPS)。
2.单位时间内所处理完的查询数(QPS)。注意是已经处理完的。
TPS和QPS用于衡量数据库的吞吐量。
3.响应时间,衡量一个测试任务完成的整体花费的时间。可以分为平均响应时间,最小响应时间,最大响应时间,个时间所占的百分比。
4.并发量。同时处理的查询请求的数量,(注意:并发量不等于连接数),是正在工作中的并发操作数或同时工作的线程或进程的数量。

mysql基准测试工具mysqlslap,sysbench
常见的基准测试工具有Mysqlslap,Sysbench,Jmeter。
Mysqlslap是一个MySQL官方提供的压力测试工具,是自带的。可以通过模拟多个并发客户端访问MySQL来执行压力测试。但是如果测试硬件,比如CPU,线程,磁盘,以及内存的性能,这些Mysqlslap都测试不了。
下面可以使用mysqlslap --help来显示提供的使用方法:
[root@localhost ~]# mysqlslap --help
mysqlslap Ver 1.0 Distrib 8.0.-dmr, for Linux (x86_64)
Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Run a query multiple times against the server. Usage: mysqlslap [OPTIONS] Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
The following groups are read: mysqlslap client
The following options may be given as the first argument:
--print-defaults Print the program argument list and exit.
--no-defaults Don't read default options from any option file,
except for login file.
--defaults-file=# Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
--defaults-group-suffix=#
Also read groups with concat(group, suffix)
--login-path=# Read this path from the login file.
-?, --help Display this help and exit.
-a, --auto-generate-sql
Generate SQL where not supplied by file or command line.
--auto-generate-sql-add-autoincrement
【mysql】mysql基准测试的更多相关文章
- MySQL服务器基准测试
一.基准测试简介 1.什么是基准测试 数据库的基准测试是对数据库的性能指标进行定量的.可复现的.可对比的测试. 基准测试与压力测试 基准测试可以理解为针对系统的一种压力测试.但基准测试不关心业务逻辑, ...
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
有时候,当我们使用"mysql"."mysqladmin"."mysqldump"等命令管理数据库时,服务器抛出类似如下错误: 一.错误现场 ...
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
从供应商手中接手一个云平台(Windwos Azure)上的MySQL数据库,登录数据库时遇到错误: $mysql -uroot -p Enter password: ERROR 2002 (HY00 ...
- mac ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib /mysql/mysql.sock' (111)
之前装了mysql,今天打开mysql的时候报了个Can't connect to local MySQL server through socket '/var/lib /mysql/mysql.s ...
- 更换mysql数据目录后出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 的解决办法
服务器上的mysql默认数据目录为/var/lib/mysql/,同时服务器的/空间不是很大,而近期又有大量的日志需要导入进行分析,时常搞得/的空间捉襟见肘,晚上一狠心就想把mysql的数据目录转移到 ...
- 启动mysql错误ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ ( ...
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)--MySQL错误
MySQL错误整理: 错误一: ERROR (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/my ...
- Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’解决方法 + Linux启动/停止/重启Mysql数据库的方法
启动mysql 报错: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/m ...
- Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '(2) ;
Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '(2) ; 如果你在网上search这个 ...
- 解决: Can’t connect to local MySQL server through socket /var/lib/mysql/mysql.sock
今天在搬瓦工上使用mysql 命令行,总报一个这样的错:Can't connect to local MySQL server through socket '/xxxxx/mysql.sock',一 ...
随机推荐
- Spring Boot应用总结更新
一.SpringBoot的产生背景: SpringBoot的产生背景伴随着微服务,微服务的相关概念参考上一篇的博客,分布式架构理论: 微服务的宏观概念理解: 将一个大应用拆分成多个小应用,一个小应用是 ...
- Word Count
Word Count 一.个人Gitee地址:https://gitee.com/godcoder979/(该项目完整代码在这里) 二.项目简介: 该项目是一个统计文件字符.单词.行数等数目的应用程序 ...
- linux备份还原命令
使用范围:1.可以作为系统还原点,还原到备份时的状态 2.系统完全损坏后无法启动,通过引导盘恢复 一.备份还原系统命令 方法一: 备份:tar cvpzf backup.tgz --exclude=/ ...
- Windows系统资源监控
1.windows自带系统资源监控工具 2.Windows监控的数据来源:Performance Counters 2.1 Performance Counter架构 2.2 Performance ...
- 批处理基础知识-EXIT
本文主要介绍批处理EXIT命令的使用. 阅读须知: 在开始阅读本文之前,您需要知道批处理CALL命令和ERRORLEVEL相关知识,若您没有接触过类似信息,建议goole或baidu. EXIT命令格 ...
- LeetCode算法题-Count Binary Substrings(Java实现)
这是悦乐书的第293次更新,第311篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第161题(顺位题号是696).给定一个字符串s,计算具有相同数字0和1的非空且连续子串 ...
- js 获取输入框中光标的索引位置
<html> <head></head> <body> <script> function getTxt1CursorPosition(){ ...
- Parallel 类并行任务(仅仅当执行耗时操作时,才有必要使用)
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...
- 在HyperLedger Fabric中启用CouchDB作为State Database
回顾一下我之前的一篇博客,在Fabric 1.0中,我们存在3种类型的数据存储,一种是基于文件系统的区块链数据,这个跟比特币很像,比特币也是文件形式存储的.Fabric1.0中的区块链存储了Trans ...
- js 实现各浏览器全屏
现代浏览器包括ie11,可以直接用h5的全屏api实现 低版本的IE需要通过ActiveX插件实现: 代码实现 <!DOCTYPE html> <html> <head& ...