mysql简单测试代码_MySQL 简单性能测试记录

机器配置:

CPU: Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz

Memory: 8GB

MySQL: 5.7.21-0ubuntu0.16.04.1 (Ubuntu)

准备工作:

sysbench --mysql-db=db_test \

--mysql-port=3306 --db-driver=mysql --mysql-user=root \

--mysql-password=root --test=oltp --oltp-table-size=10000000 \

--num-threads=100 --max-time=60 \

--oltp-test-mode=nontrx --oltp-nontrx-mode=select \

--max-requests=0 --percentile=95 prepare

1. 读取性能测试

sysbench --mysql-db=db_test \

--mysql-port=3306 --db-driver=mysql --mysql-user=root \

--mysql-password=root --test=oltp --oltp-table-size=10000000 \

--num-threads=100 --max-time=60 \

--oltp-test-mode=nontrx --oltp-nontrx-mode=select \

--max-requests=0 --percentile=95 run

结果:

OLTP test statistics:

queries performed:

read: 4248201

write: 0

other: 0

total: 4248201

transactions: 4248201 (70801.29 per sec.)

deadlocks: 0 (0.00 per sec.)

read/write requests: 4248201 (70801.29 per sec.)

other operations: 0 (0.00 per sec.)

Test execution summary:

total time: 60.0017s

total number of events: 4248201

total time taken by event execution: 5998.0902

per-request statistics:

min: 0.03ms

avg: 1.41ms

max: 266.43ms

approx. 95 percentile: 2.72ms

Threads fairness:

events (avg/stddev): 42482.0100/686.55

execution time (avg/stddev): 59.9809/0.00

可以看到差不多 7 万的 QPS

2. 写入性能测试

sysbench --mysql-db=db_test \

--mysql-port=3306 --db-driver=mysql --mysql-user=root \

--mysql-password=root --test=oltp --oltp-table-size=10000000 \

--num-threads=100 --max-time=60 \

--oltp-test-mode=nontrx --oltp-nontrx-mode=insert \

--max-requests=0 --percentile=95 run

OLTP test statistics:

queries performed:

read: 0

write: 49227

other: 0

total: 49227

transactions: 49227 (817.14 per sec.)

deadlocks: 0 (0.00 per sec.)

read/write requests: 49227 (817.14 per sec.)

other operations: 0 (0.00 per sec.)

Test execution summary:

total time: 60.2432s

total number of events: 49227

total time taken by event execution: 6022.6811

per-request statistics:

min: 29.59ms

avg: 122.35ms

max: 1234.17ms

approx. 95 percentile: 357.95ms

Threads fairness:

events (avg/stddev): 492.2700/8.26

execution time (avg/stddev): 60.2268/0.03

可以看到就只有 800 多的 QPS 了, 远远低于简单查询.

3. 更新(带索引)

sysbench --mysql-db=db_test \

--mysql-port=3306 --db-driver=mysql --mysql-user=root \

--mysql-password=root --test=oltp --oltp-table-size=10000000 \

--num-threads=100 --max-time=60 \

--oltp-test-mode=nontrx --oltp-nontrx-mode=update_key \

--max-requests=0 --percentile=95 run

结果

OLTP test statistics:

queries performed:

read: 0

write: 21942

other: 0

total: 21942

transactions: 21942 (363.68 per sec.)

deadlocks: 0 (0.00 per sec.)

read/write requests: 21942 (363.68 per sec.)

other operations: 0 (0.00 per sec.)

Test execution summary:

total time: 60.3338s

total number of events: 21942

total time taken by event execution: 6012.0994

per-request statistics:

min: 33.29ms

avg: 274.00ms

max: 2546.19ms

approx. 95 percentile: 629.71ms

Threads fairness:

events (avg/stddev): 219.4200/6.41

execution time (avg/stddev): 60.1210/0.04

4. 更新(不带 key)

sysbench --mysql-db=db_test \

--mysql-port=3306 --db-driver=mysql --mysql-user=root \

--mysql-password=root --test=oltp --oltp-table-size=10000000 \

--num-threads=100 --max-time=60 \

--oltp-test-mode=nontrx --oltp-nontrx-mode=update_nokey \

--max-requests=0 --percentile=95 run

结果:

OLTP test statistics:

queries performed:

read: 0

write: 28065

other: 0

total: 28065

transactions: 28065 (464.81 per sec.)

deadlocks: 0 (0.00 per sec.)

read/write requests: 28065 (464.81 per sec.)

other operations: 0 (0.00 per sec.)

Test execution summary:

total time: 60.3791s

total number of events: 28065

total time taken by event execution: 6034.7862

per-request statistics:

min: 32.02ms

avg: 215.03ms

max: 1426.55ms

approx. 95 percentile: 574.59ms

Threads fairness:

events (avg/stddev): 280.6500/8.18

execution time (avg/stddev): 60.3479/0.06

可以看到, update_nokey 比 update_key 略微高一些, 这也证明了对于更新频繁的表, 不要设置太多的索引的正确性.

4. 删除

sysbench --mysql-db=db_test \

--mysql-port=3306 --db-driver=mysql --mysql-user=root \

--mysql-password=root --test=oltp --oltp-table-size=10000000 \

--num-threads=100 --max-time=60 \

--oltp-test-mode=nontrx --oltp-nontrx-mode=delete \

--max-requests=0 --percentile=95 run

结果:

OLTP test statistics:

queries performed:

read: 0

write: 8062

other: 0

total: 8062

transactions: 8062 (119.45 per sec.)

deadlocks: 0 (0.00 per sec.)

read/write requests: 8062 (119.45 per sec.)

other operations: 0 (0.00 per sec.)

Test execution summary:

total time: 67.4955s

total number of events: 8062

total time taken by event execution: 6290.0099

per-request statistics:

min: 33.34ms

avg: 780.20ms

max: 16901.57ms

approx. 95 percentile: 3838.98ms

Threads fairness:

events (avg/stddev): 80.6200/12.56

execution time (avg/stddev): 62.9001/2.30

总结

操作类型

性能(QPS)

select

70801/s

insert

817/s

update

363/s

update_nokey

464/s

delete

119/s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用Loadrunner测试Mysql数据库性能,需要遵循以下步骤: 1. 安装Loadrunner软件,并在Loadrunner中打开Vugen(Virtual User Generator)。 2. 在Vugen中创建一个新的脚本,并选择协议类型为ODBC。 3. 配置ODBC数据源,以便与Mysql数据库建立连接。 4. 在脚本中添加数据库操作,比如插入、更新、查询等。 5. 设置负载测试参数,如虚拟用户数、持续时间、并发请求数等。 6. 运行负载测试,收集性能数据。 7. 分析性能数据,发现潜在的性能瓶颈,并进行优化。 需要注意的是,在进行负载测试前,要确保Mysql数据库已经正确地配置和优化,以避免测试结果受到数据库本身的限制。另外,负载测试要在生产环境之外进行,以避免对实际业务造成影响。 ### 回答2: 运用Loadrunner对MySQL数据库进行性能测试是一种常见的方法。Loadrunner是一款功能强大的性能测试工具,可以模拟多个用户同时对MySQL数据库进行读写操作,以评估数据库在高负载情况下的性能表现。 首先,需要创建一个测试场景,包括模拟用户的行为和操作,例如数据库查询、插入、更新和删除等操作。然后,设置虚拟用户数量和并发数,以模拟实际应用场景下的负载。 其次,配置数据库连接参数,包括数据库服务器地址、端口号、用户名和密码等。Loadrunner可以使用自带的数据库协议模拟真实的数据库请求,通过执行SQL语句向数据库发送请求。 接下来,使用Loadrunner的脚本编辑器编写脚本,包括数据库连接、查询、更新等操作。可以通过录制脚本的方式,将用户的操作转化为脚本,或者手动编写脚本以模拟特定的数据库操作。 一旦脚本编写完成,可以开始进行性能测试。Loadrunner可以按照预先设定的虚拟用户数量和并发数,同时运行多个用户脚本,模拟多个用户对数据库进行操作。 在测试运行期间,Loadrunner会收集各种性能指标,例如响应时间、吞吐量、并发数等。通过分析这些指标,可以评估数据库的性能,并找出潜在的性能瓶颈。 最后,可以根据测试结果进行优化和调整。通过不断重复测试、分析和优化的循环,可以提高MySQL数据库的性能,提供更好的用户体验。[300字] ### 回答3: 使用LoadRunner测试MySQL数据库性能可以通过以下步骤进行: 1. 安装LoadRunner:首先,需要下载并安装LoadRunner软件,确保版本兼容并按照指示进行安装。 2. 创建脚本:在LoadRunner的Vuser脚本编辑器中,创建一个新的脚本来模拟对MySQL数据库的访问。脚本包括必要的代码和配置,例如数据库连接,查询语句等。 3. 参数化:通过参数化数据,可以模拟多个用户同时访问数据库。可以使用LoadRunner内置的参数化功能来实现。将脚本中的固定数据替换为参数,例如使用用户名、密码和查询语句等。 4. 创建虚拟用户:使用LoadRunner的“Virtual User Generator”创建虚拟用户,配置虚拟用户数量和行为。为每个虚拟用户分配不同的参数值,以模拟多个用户的并发访问。 5. 运行负载测试:使用LoadRunner的控制台或命令行界面来运行负载测试。在测试期间,LoadRunner会模拟多个虚拟用户并发地访问MySQL数据库,并且记录关键性能指标,如响应时间、吞吐量等。 6. 分析结果:在测试结束后,可以使用LoadRunner的分析工具来查看测试结果。可以生成图表和报告,以便更好地理解数据库性能,并识别潜在的性能瓶颈和问题。 需要注意的是,在进行MySQL数据库性能测试时,应确保测试环境的合理性和一致性。数据库服务器的配置、网络连接和负载情况等因素都可以对测试结果产生影响,因此应尽可能模拟真实的生产环境进行性能测试

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值