【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学习总结——高级装配学习一(profile与@Conditional)
前言: 在上一章装配Bean中,我们看到了一些最为核心的bean装配技术.你可能会发现上一章学到的知识有很大的用处.但是,bean装配所涉及的领域并不仅仅局限于上一章 所学习到的内容.Spring提供 ...
- C语言,char类型变量不应与EOF直接比较
#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std; int m ...
- Oracle——DQL、DML、DDL、DCL
1.DQL:数据查询语言 基本结构:由select.from.where组成 子句组成的查询块: SELECT <字段名表> FROM <表或视图名> WHE ...
- python模块shutil
shutil.copyfileobj(fsrc, fdst,[ length]) 拷贝文件句柄,将类文件对象fsrc的内容复制到类文件对象fdst.如果给定整数长度,则为缓冲区大小.如果长度是负值意味 ...
- js学习之路2: JavaScript 变量
1. 变量的创建 首先,可以创建一个变量 var firstVar; 这时候,并没有给它赋值.这个变量还是空的. 然后,我们可以给这个变量赋值. firstVar = 128: 2. 变量的赋值 变量 ...
- RHEL/Centos7 安装图形化桌面(转)
RHEL/Centos7 安装图形化桌面 Linux是一个多任务的多用户的操作系统,好多linux爱好者在安装完linux后经常遇到一个问题——没有图形化桌面.今天小编在安装RHEL7的时候,一步 ...
- 【PAT】B1013 数素数
用埃氏筛筛出素数表(节约时间) 素数的筛选范围不能小了,一定要够大 #include<stdio.h> int main(){ int N,M;scanf("%d %d" ...
- 从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法
注意,64位系统,用64位的补丁文件; https://www.cnblogs.com/A2008A/articles/2438962.html 操作系统:使用的是64位的Windows Server ...
- fastjson JSON 对象为空保留null
JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(Object, SerializerFeature.WriteMapN ...
- 04 Django REST Framework 认证、权限和限制
目前,我们的API对谁可以编辑或删除代码段没有任何限制.我们希望有更高级的行为,以确保: 代码片段始终与创建者相关联. 只有通过身份验证的用户可以创建片段. 只有代码片段的创建者可以更新或删除它. 未 ...