MySQL数据库基于sysbench实现OLTP基准测试

 更新时间:2020年11月26日 09:19:33   作者:fengzhanhai  
这篇文章主要介绍了MySQL数据库基于sysbench实现OLTP基准测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

sysbench是一款非常优秀的基准测试工具,它能够精准的模拟MySQL数据库存储引擎InnoDB的磁盘的I/O模式。因此,基于sysbench的这个特性,下面利用该工具,对MySQL数据库支撑从简单到复杂事务处理工作负载的基准测试与验证。

测试场景一、OLTP读基准测试

1) 准备数据

sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=100000

--mysql-db=cbusdb --mysql-user=root prepare

2) OLTP随机读一致性业务场景测试验证

time sysbench --test=oltp --oltp-table-size=100000 --mysql-db=cbusdb

--mysql-user=root --max-time=60 --oltp-read-only --max-requests=0 --num-threads=8 run

以上测试模拟并发8个线程,最大请求10000次/秒,持续60秒对单表数据集10w条数据量的表进行随机读操作,测试结果如下所示:

通过模拟8个并发用户在数据量10w条的表上进行一致性读操作并结合上图,分析得出如下结论:

1) 60秒内共执行读请求766094次,更新及其他类型的请求109442次,QPS:12765;

2) 60s内共执行事务操作54721,TPS:911,成功率100%;

3) 每个事务执行最小时间2.98ms,最大时间184.5ms,平均执行时间8.76ms。

以上测试结果运行环境基本配置信息:

1) 虚拟机2颗CPU、2G内存,20G存储空间;

2) MySQL数据库参数未优化、调整。

测试场景二、OLTP混合类型负载测试

模拟OLTP随机读、写(更新、删除、插入):

sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=10000

--mysql-db=cbusdb --mysql-user=root --max-time=60

--oltp-nontrx-mode=update_key --max-requests=0 --num-threads=8 run

测试结果如下所示:

通过模拟8个并发用户在数据量10w条的表上模拟复杂的混合性工作负载测试并结合上图,分析得出如下结论:

1) 60秒内共执行读请求233268次,写请求83260次,其他类型的请求:33309,QPS:5273;

2) 60s内共执行事务操作16647,TPS:277,锁冲突造成的死锁的数量15个,事务的成功率99.91%;

3) 每个事务执行最小时间8.19ms,最大时间1299.78ms,平均执行时间28.82ms。

以上测试结果运行环境基本配置信息:

1) 虚拟机2颗CPU、2G内存,20G存储空间;

2) MySQL数据库参数未优化、调整。

sysbench详细介绍

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • mysql如何才能保证数据的一致性

    mysql如何才能保证数据的一致性

    这篇文章主要介绍了mysql如何才能保证数据的一致性问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教<BR>
    2024-03-03
  • windows环境下mysql数据库的主从同步备份步骤(单向同步)

    windows环境下mysql数据库的主从同步备份步骤(单向同步)

    本文主要是向大家描述的是在windows环境之下实现MySQL数据库的主从同步备份的正确操作方案,以下就是文章的详细内容描述
    2011-05-05
  • mysql5.5数据库data目录迁移方法详解

    mysql5.5数据库data目录迁移方法详解

    这篇文章主要介绍了mysql5.5数据库data目录迁移方法详解,其实数据库的目录就在你安装目录的data里面,我的实在D盘。可能大家默认安装都在C吧。这样就要迁移了。这个大家都懂需要的朋友可以参考下
    2016-04-04
  • 浅谈mysql的索引设计原则以及常见索引的区别

    浅谈mysql的索引设计原则以及常见索引的区别

    下面小编就为大家带来一篇浅谈mysql的索引设计原则以及常见索引的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • MySQL数据库主从复制原理及作用分析

    MySQL数据库主从复制原理及作用分析

    这篇文章主要介绍了MySQL数据库主从复制原理并分析了主从复制的作用和使用方法,有需要的的朋友可以借鉴参考下,希望可以有所帮助,感谢阅读
    2021-09-09
  • mysql source 命令导入大的sql文件的方法

    mysql source 命令导入大的sql文件的方法

    本文将详细介绍mysql source 命令导入大的sql文件的方法;需要的朋友可以参考下
    2012-11-11
  • MySQL实现简单的创建库和创建表操作方法

    MySQL实现简单的创建库和创建表操作方法

    MySQL是最常用的数据库,在数据库操作中基本都是增删改查操作,简称CRUD,这篇文章主要给大家介绍了关于MySQL实现简单的创建库和创建表操作方法的相关资料,需要的朋友可以参考下
    2023-11-11
  • MySQL查看视图的三种方法

    MySQL查看视图的三种方法

    本文主要介绍了MySQL查看视图的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-09-09
  • Mysql大表添加字段失败问题及解决

    Mysql大表添加字段失败问题及解决

    这篇文章主要介绍了Mysql大表添加字段失败问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • 提高MySQL 查询效率的三个技巧

    提高MySQL 查询效率的三个技巧

    MySQL由于它本身的小巧和操作的高效, 在数据库应用中越来越多的被采用.我在开发一个P2P应用的时候曾经使用MySQL来保存P2P节点,由于P2P的应用中,结点数动辄上万个,而且节点变化频繁,因此一定要保持查询和插入的高效.以下是我在使用过程中做的提高效率的三个有效的尝试. 1. 使用statement进行绑定查询 2. 随机的获取记录 3. 使用连接池管理连接.
    2008-04-04

最新评论