成功最有效的方法就是向有经验的人学习!

Mysql架构组成之存储引擎压力测试

一、压力测试mysql

Mysqlslap性能测试mysql二中存储引擎(mysim、innodb)

Mysqlslap是mysql自带的基准的测试工具优点有:查询数据,语法简单,灵活容易使用,这个工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较,mysqlslap为mysql性能优化前后提供了直观的依据

Mysqlslap一些参数

–concurrency代表并发的数量,多个可以用逗号隔开。如: concurrency 500,1000等

–engines代表要测试的引擎,可以有多个,用分隔符隔开。

–iterations代表运行这些测试多少次,以及运行多少次后,得到的结果

–auto-generate-sql-load-type代表要测试的是读还是写还是两者混合的。

–number-of-queries代表总共要运行多少次的查询,每个客户运行的查询数量可以用查询总数/并发数来计算

–debug-info嗲表要额外输出cpu以及内存的相关信息

–number-int-cols代表测试表中的integer类型的属性有多少个

–number-char-cols代表测试表中char类型字段的数量

等等。。。更多参数可以用mysqlslap –help查看。

1.查看    mysql数据库默认的最大连接数

mysql> show variables like ‘%max_connections%’;

Mysql架构组成之存储引擎压力测试

Mysql架构组成之存储引擎压力测试

默认是151,可以通过主配置 文件来添加max_connections=1024重启mysql再次查看

Mysql架构组成之存储引擎压力测试

Mysql架构组成之存储引擎压力测试

修改后的最大连接数

Mysql架构组成之存储引擎压力测试

Mysql架构组成之存储引擎压力测试

2.用自带的sql脚本来测试

mysqlslap  --defaults-file=/etc/my.cnf    --concurrency=1600,1620    --iterations=1--number-int-cols=20 number-char-cols=30   --auto-generate-sql   --auto-generate-sql-add-autoincrement   --auto-generate-sql-load-type=mixed   --engine=myisam,innodb   --number-of-queries=2000 -uroot-ppwd123 --verbose

 

Mysql架构组成之存储引擎压力测试

Mysql架构组成之存储引擎压力测试

也可以将测试结果以csv的格式拷贝到windows主机上如下:

mysqlslap    --defaults-file=/etc/my.cnf    --concurrency=1600,1620    --iterations=1   --number-int-cols=20  number-char-cols=30   --auto-generate-sql     --auto-generate-sql-add-autoincrement    --auto-generate-sql-load-type=mixed   --engine=myisam,innodb   --number-of-queries=6000  -uroot -ppwd123   --csv=/root/yankerp.csv

 

Mysql架构组成之存储引擎压力测试

Mysql架构组成之存储引擎压力测试

Linux已经生成,通过sz命令下载到本地windows

Mysql架构组成之存储引擎压力测试

Mysql架构组成之存储引擎压力测试

3.用我们自己定义的sql语句脚本测试

脚本内容如下:

#!/bin/bash
HOSTNAME="localhost"
PORT="3306"
USERNAME="root"
PASSWORD="123456"
DBNAME="test1"
TABLENAME="tb1"
#create database
mysql -h ${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e "drop database if exists ${DBNAME}"
create_db_sql="create database if not exists ${DBNAME}"
mysql -h ${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e"${create_db_sql}"
#create table
create_table_sql="create table if not exists ${TABLENAME}(stuid int not null primary key,stuname varchar(20) not null,stusex char(1) not null,cardid varchar(20) not null,birthday datetime,entertime datetime,address varchar(100)default null)"
mysql -h ${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e"${create_table_sql}"
#insert data to table
i="1"
while [ $i -le 20000 ]
do
insert_sql="insert into ${TABLENAME}  values($i,'zhangsan','1','21276387261874682','1999-10-10','2017-10-24','beijingchangpingqu')"
mysql -h ${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e"${insert_sql}"
let i++
done
#select data
select_sql="select count(*)from${TABLENAME}"
mysql -h ${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e"${select_sql}"
Mysql架构组成之存储引擎压力测试

Mysql架构组成之存储引擎压力测试

运行结束后,执行mysqlslap工具测试(过程稍慢)

mysqlslap--defaults-file=/etc/my.cnf --concurrency=500,600 --iterations=1--create-schema="yankerp" --query='select * from yankerp.bdqn'--engine=myisam,innodb --number-of-queries=2000 -uroot -ppwd123 --verbose

 

Mysql架构组成之存储引擎压力测试

Mysql架构组成之存储引擎压力测试

生成csv文件到windows

mysqlslap--defaults-file=/etc/my.cnf --concurrency=100,200 --iterations=1--create-schema="yankerp" --query='select * from yankerp.bdqn'--engine=myisam,innodb --number-of-queries=2000 -uroot -ppwd123--csv=/root/yankai.csv

 

Mysql架构组成之存储引擎压力测试

Mysql架构组成之存储引擎压力测试

工程中遇到的错误

Mysql架构组成之存储引擎压力测试

Mysql架构组成之存储引擎压力测试

调整以下并发数就解决了~~

赞(0) 打赏
未经允许不得转载:陈桂林博客 » Mysql架构组成之存储引擎压力测试
分享到

大佬们的评论 抢沙发

全新“一站式”建站,高质量、高售后的一条龙服务

微信 抖音 支付宝 百度 头条 快手全平台打通信息流

橙子建站.极速智能建站8折购买虚拟主机

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册