广州总部电话:020-85564311
广州总部电话:020-85564311

广州网站建设-小程序商城开发-广州小程序开发-企业微信开发公司-网站建设高端品牌-优网科技

20年
互联网应用服务商
请输入搜索关键词
知识库 知识库

优网知识库

探索行业前沿,共享知识宝库

MySQL 压力测试
发布日期:2025-04-17 17:44:59 浏览次数: 822 来源:SRE运维派


1 MySQL 压力测试

1.1 常见 MySQL 压力测试工具

对 MySQL 服务进行压力测试,可以让我们提前知晓当前服务节点的性能,从而对整个架构的负载能力有合理的预期,进而做出相应的调整和部署。

常见的 MySQL 压力测试工具包括 mysqlslap,Sysbench,tpcc-mysql,MySQL Benchmark Suite,MySQL super-smack,MyBench 等,其中 mysqlslap 是 mysql 官方提供的压力测试工具,安装 mysql 服务就可以直接使用。

1.2 使用 mysqlslap 进行压力测试

mysqlslap 来自于 mysql 或 mariadb 包,测试的过程默认生成一个 mysqlslap 的 schema,生成测试表 t1,查询和插入测试数据,mysqlslap 库自动生成,如果已经存在则先删除。用 --only-print 来打印实际的测试过程,整个测试完成后不会在数据库中留下痕迹。

命令格式

mysqlslap [OPTIONS]
#常用选项-?|--help #显示帮助-V|--version #显示版本信息-h|--host=name #服务器地址-p|--password[=name] #连接密码-P|--port=N #端口-a|--auto-generate-sql #自行生成测试表和数据,测试结束后会被删除-x|--number-char-cols=N #自动生成的测试表中包含多少个字符类型的列,默认1-y|--number-int-cols=N #自动生成的测试表中包含多少个数字类型的列,默认1-q|--query=sql #执行自定义SQL语句-S|--socket=name #指定连接使用的socket文件-c|--concurrency=N #表示并发量,即模拟多少个客户端同时执行select,可指定多个值                   #以逗号或者--delimiter参数指定值做为分隔符,如--concurrency=100,200,500-i|--iterations=N #测试执行的迭代次数,代表要在不同并发环境下,各自运行测试多少次-e|--engine=name #要测试的引擎,可以有多个,用分隔符隔开。例如--engines=myisam,innodb-C|--compress #如果服务器和客户端都支持压缩,则压缩信息--print-defaults #在终端输出默认选项和参数--only-print #只打印测试语句而不实际执行--commint=N #多少次DML后提交一次事务--detach=N #执行N条语句后断开重连--no-drop #测试完成后不删除测试库--create-schema=name #自定义测度库名称--number-of-queries=N #总的测试查询次数(并发客户数乘以每客户查询次数)--auto-generate-sql-add-autoincrement #在测试数据表中增加 auto_increment 列,从 mysql 5.1.18 版本开始支持--auto-generate-sql-load-type=name #测试类型 mixed|update|write|key,默认为mixed
范例
#默认连接当前服务器,自行生成测试表,同时100个客户端并发执行[root@rocky86 ~]# mysqlslap --c100Benchmark    Average number of seconds to run all queries: 0.512 seconds #平均查询时长    Minimum number of seconds to run all queries: 0.512 seconds #查询中最小时长    Maximum number of seconds to run all queries: 0.512 seconds #查询中最大时长    Number of clients running queries: 100 #查询客户端数量    Average number of queries per client: 0 #平均每个客户端查询次数,没有指定总的查询次数,值为0
#迭代10root@rocky86 ~]# mysqlslap --10 -100 -uroot -p123456Benchmark    Average number of seconds to run all queries: 0.431 seconds    Minimum number of seconds to run all queries: 0.363 seconds    Maximum number of seconds to run all queries: 0.509 seconds    Number of clients running queries: 100    Average number of queries per client: 0
#50个客户端同时请求,myisam,innodb各请求200[root@rocky86 ~]# mysqlslap --50 --number-of-queries 200 --engine=myisam,innodbBenchmark    Running for engine myisam    Average number of seconds to run all queries: 0.933 seconds    Minimum number of seconds to run all queries: 0.933 seconds    Maximum number of seconds to run all queries: 0.933 seconds    Number of clients running queries: 50    Average number of queries per client: 4
Benchmark    Running for engine innodb    Average number of seconds to run all queries: 0.365 seconds    Minimum number of seconds to run all queries: 0.365 seconds    Maximum number of seconds to run all queries: 0.365 seconds    Number of clients running queries: 50    Average number of queries per client: 4
mysql> show databases like '%slap%';Empty set (0.00 sec)
#保留数据库[root@rocky86 ~]# mysqlslap ---no-drop
mysql> show databases like '%slap%';+-------------------+| Database (%slap%|+-------------------+| mysqlslap         |+-------------------+1 row in set (0.01 sec)

— END —

优网科技,优秀企业首选的互联网供应服务商

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!

优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、DIY体验、720全景展厅及3D虚拟仿真)、移动端应用(手机站APP开发)、微信定制开发(微信官网、微信商城、企业微信)、微信小程序定制开发等一系列互联网应用服务。


我要投稿

姓名

文章链接

提交即表示你已阅读并同意《个人信息保护声明》

专属顾问 专属顾问
扫码咨询您的优网专属顾问!
专属顾问
马上咨询
扫一扫马上咨询
扫一扫马上咨询

扫一扫马上咨询