详细分析mysqlslap的基本知识 | 压力测试(附Demo)

目录

  • 前言
  • 1. 基本知识
  • 2. 参数解读
    • 2.1 auto-generate-sql
    • 2.2 only-print
    • 2.3 iterations
    • 2.4 并发处理参数

前言

对数据库进行压力测试,对此补充这方面的详细知识点

1. 基本知识

mysqlslap 是 MySQL 自带的用于模拟数据库负载的压力测试工具
可以模拟多个客户端并发访问数据库服务器,以评估服务器的性能表现

  • 并发用户:允许模拟多个并发用户访问数据库服务器,每个用户执行一系列查询或命令
  • 测试参数:指定并发用户的数量、执行的查询或命令、并发连接数、测试时间等参数
  • 模拟负载:模拟不同类型的负载,如读取、写入或读写混合负载,以评估数据库服务器在不同负载下的性能
  • 结果输出:提供详细的测试结果,包括每个查询的平均响应时间、吞吐量等指标

2. 参数解读

从实战中介入容易好上手

--user:MySQL 用户名
--password:MySQL 密码
--host:MySQL 主机名
--concurrency:并发用户数
--iterations:每个用户执行的查询次数
--query:要执行的查询或命令文件

2.1 auto-generate-sql

从基本的命令行开始:mysqlslap -uroot -proot --auto-generate-sql,此代码含义为 mysqlslap 自动生成测试 SQL,而不需要提供 SQL 文件

截图如下:

在这里插入图片描述

对应的参数如下:

-uroot:指定用户名为 “root”
-proot:指定密码

对应的执行文件解读如下:

测试的平均、最小和最大运行时间都是 0.235 秒,测试中有一个客户端在运行查询,并且平均每个客户端运行了 0 条查询。由于使用了 --auto-generate-sql 选项,mysqlslap 工具会自动生成一些查询来进行测试,但是在这个结果中没有显示具体的查询内容

2.2 only-print

--only-print是 mysqlslap 的一个参数,其作用只打印生成的 SQL 查询语句,而不执行实际的压力测试

这个参数通常与 --auto-generate-sql 一起使用,用于生成 SQL 查询语句并将其打印到控制台,以便可以查看将要执行的查询内容,而不实际执行测试

使用 --only-print 参数时,mysqlslap 不会连接到数据库,也不会执行任何查询
相反,仅仅打印出生成的 SQL 查询语句,这对于调试测试或查看生成的查询是否符合预期非常有用

命令行如下:mysqlslap -uroot -proot --auto-generate-sql --only-print

截图如下:

在这里插入图片描述

2.3 iterations

--iterations 参数用于指定每个并发用户要执行的查询或命令的次数,控制每个用户在整个测试期间要执行的总操作次数

当设置 --iterations=100 时,每个并发用户将会执行指定的查询或命令 100 次

这个参数的作用是控制压力测试的持续时间和负载量
通过调整 --iterations 参数,可以控制测试的持续时间,以及每个用户在测试期间对数据库的负载程度

测试模版如下:

mysqlslap --user=username --password=password --host=localhost --concurrency=10 --iterations=50 --auto-generate-sql

2.4 并发处理参数

--concurrency:指定并发用户的数量,也就是同时连接到数据库并执行查询的用户数
当设置 --concurrency=10 时,表示有 10 个用户同时连接到数据库执行查询
较高的并发用户数可以模拟真实生产环境下的情况,帮助评估数据库服务器在高负载下的性能表现

--number-of-queries:指定每个用户要执行的查询次数
当设置 --number-of-queries=100 时,表示每个用户要执行 100 次查询
通过调整这个参数,可以控制每个用户对数据库的负载程度

模版如下:

mysqlslap --user=username --password=password --host=localhost --concurrency=20 --number-of-queries=50 --auto-generate-sql

实际操作如下:mysqlslap -uroot -proot --auto-generate-sql --concurrency=10 --number-of-queries=10

截图如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/571119.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java | 多线程】LockSupport 的使用和注意事项

了解一下 LockSupport LockSupport是一个类,位于java.util.concurrent.locks包中,提供了基本的线程同步机制。 LockSupport的主要作用是挂起和唤醒线程。它提供了两个主要的静态方法:park()和unpark()。 park():用于挂起当前线…

AI论文速读 |从图结构角度统一车道级交通预测:基准和基线

题目:Unifying Lane-Level Traffic Prediction from a Graph Structural Perspective: Benchmark and Baseline 作者:Shuhao Li, Yue Cui, Jingyi Xu, Libin Li, Lingkai Meng, Weidong Yang(杨卫东), Fan Zhang, Xiaofang Zhou(周晓方) 机构&#xff…

【Python】Python函数的黑魔法:递归,嵌套函数与装饰器

欢迎来到CILMY23的博客 本篇主题为: Python函数的黑魔法:递归,嵌套函数与装饰器 个人主页:CILMY23-CSDN博客 系列专栏:Python | C | C语言 | 数据结构与算法 感谢观看,支持的可以给个一键三连&#xff…

redis基于Stream类型实现消息队列,命令操作,术语概念,个人总结等

个人大白话总结 1 在Redis Stream中,即使消息被消费者确认(acknowledged, ACK),消息也不会自动从Stream数据结构中删除。这与Kafka或RabbitMQ等传统消息队列系统的做法不同,在那些系统中,一旦消息被消费并…

废液收集系统物联网远程监控解决方案

废液收集系统物联网远程监控解决方案 在面对日益严峻的环保压力和严格的法律法规要求下,构建一套高效、智能的废液收集系统物联网远程监控解决方案显得尤为重要。该方案旨在通过深度融合物联网技术、云计算、大数据分析等先进手段,实现对废液收集系统的…

RuoYi-Vue-Plus (SaToken 注解鉴权)

一、SaInterceptor 注解鉴权和路由拦截鉴权 拦截器:SaInterceptor 实现类位置: cn.dev33.satoken.interceptor.SaInterceptor 功能:Sa-Token 综合拦截器,提供注解鉴权和路由拦截鉴权能力 /*** 创建一个 Sa-Token 综合拦截器&…

测试用例设计方法-异常测试

飞的最高的海鸥,能看到最远的奇景。大家好,继续给大家分享如何进行异常测试,首先要做好异常测试,需要我们对被测系统进行全面的了解,熟悉被测系统的功能、架构和运行机制,然后在这个基础上尽可能覆盖各种的…

再谈“协议”

1.认识协议 之前我们使用TCP的方式实现了一个服务器,而TCP是面向字节流的,而UDP是面向数据报的,接下来通过一个例子区分两种的区别。 UDP面向数据报:就如同发快递,你发多少个快递,对面就收到多少个快递&am…

探索React Router:实现动态二级路由

我有一个路由配置的二维数组,想根据这个数组结合路由组件来动态生成路由,应该怎么样实现。在 React Router 6 中渲染二级路由的方式跟 React Router 65相比有一些变化,但核心思路仍然是利用 Route 组件和路由嵌套的方式。下面是具体的步骤: 定义路由数组…

OpenCompass 大模型评测实战——作业

OpenCompass 大模型评测实战——作业 一、基础作业1.1、使用 OpenCompass 评测 internlm2-chat-1_8b 模型在 C-Eval 数据集上的性能1.1.1、安装基本环境1.1.2、解压数据集1.1.3、查看支持的数据集和模型1.1.4、启动评测 二、进阶作业2.1、将自定义数据集提交至OpenCompass官网 …

WIFISKY 7层流控路由器 confirm.php RCE漏洞复现

0x01 产品简介 WIFISKY-7层流控路由器是一款可用于家庭或办公环境的无线路由器,具备流控功能以优化网络流量和提供更稳定的网络连接。该路由器采用了7层流控技术,能够依据网络数据包的内容进行智能管理,从而实现对网络流量的精细化控制和优化。这种技术可以提升网络的整体性…

vscode 使用文件模板功能来添加版权信息

vscode 新建文件的时候,自动填充作者及版权信息 无需使用插件,操作如下: 选择 “首选项(Preferences)”。在搜索框中输入 “file template” 或者 “文件模板”,然后选择相关的设置项。 {"C_Cpp.clang_format_fallbackSt…

ctfshow web入门 SQl注入 web191--web200

web191 多了一个正则绕过 上脚本布尔盲注 用ord #author:yu22x import requests import string url"http://70adf0cb-2208-4974-b064-50a4f4103541.challenge.ctf.show/api/index.php" sstring.ascii_lettersstring.digits flag for i in range(1,45):print(i)for j…

【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,包络熵,散布熵,究竟实现了什么?(第六篇)——“散布熵”及其MATLAB实现

今天讲散布熵,之前用了几篇文章分别讲述了功率谱熵、奇异谱熵、能量熵、近似熵、样本熵、模糊熵、排列熵、包络熵这8种类型的熵: Mr.看海:【熵与特征提取】基于“信息熵”的特征指标及其MATLAB代码实现(功率谱熵、奇异谱熵、能量…

脚手架搭建项目package.json配置中依赖的版本问题

脚手架搭建项目package.json配置中依赖的版本问题 问题描述:项目刚搭建好,运行没有问题,为什么过一段时间,删除node_modules,或者重新安装包依赖,然后项目某些地方出现莫名的错误(依赖库的地方…

希捷HDD最新财报:销售同比下降11%,环比增长6%,4Q24前景看好

Seagate Technology Holdings plc公布了截至2024年3月29日的第三财季财务业绩。 “随着云需求改善、我们强大的运营纪律和价格执行,希捷3月季度的营收增长了6%,非GAAP每股收益较上一季度翻了一番多。这种组合为我们市场复苏时回归目标利润率奠定了基础。…

C++:类与对象完结篇

hello,各位小伙伴,本篇文章跟大家一起学习《C:运算符重载》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 文章目录 重新认识构造函数1.初始化列表2.explicit关键字 static成员1.sta…

面试:ThreadLocal

目录 1、ThreadLocal可以实现〔资源对象】的线程隔离,让每个线程各用各的【资源对象】,避免争用引发的线程安全问题 2、ThreadLocal同时实现了线程内的资源共享 3、原理 4、为什么ThreadLocalMap 中的 key (即 ThreadLocal )要设计为弱引用…

configure: error: library ‘crypto‘ is required for OpenSSL

1、执行命令./configure --prefix/usr/local/pgsql/postgresql-14.2 --with-openssl 报错configure: error: library crypto is required for OpenSSL 2、解决办法 yum install openssl openssl-devel

pom文件依赖报红问题

dependencyManagement标签下依赖报红 如图 dependencyManagement标签下依赖报红问题,原因是dependencyManagement标签下的包不会被下载,repository里根本没有 解决方法 :将依赖复制到dependencies标签下,再reload pom文件&#x…