MySQL 数据库基准测试报告
MySQL 数据库基准测试报告
1. 引言
数据库基准测试是一项重要的性能评估活动,旨在通过模拟实际的工作负载,测试数据库在不同条件下的表现。这些测试有助于发现性能瓶颈并提供优化的依据。在本报告中,我们将基于 sysbench 工具对 MySQL 数据库进行基准测试,并分析测试结果。
2. 测试环境
- 数据库版本: MySQL 8.0.x
- 操作系统: CentOS 8
- 硬件配置:
- CPU: Intel Xeon E5-2650 v4 (12 核 24 线程)
- 内存: 64 GB
- 存储: SSD 1TB
- 网络: 1Gbps
- 测试工具: Sysbench 1.0.20
- 数据库配置:
- 使用默认的 MySQL 配置,未进行特殊的性能优化。
- 测试数据库:
testdb - 测试表大小: 1,000,000 行数据
3. 测试方法
本次基准测试使用 sysbench 工具进行 OLTP (在线事务处理) 性能测试,重点关注数据库的读取与写入性能。测试的工作负载模拟了一个具有混合读写操作的典型业务场景,具体操作包括:
- 读取:查询操作,模拟数据库读取。
- 写入:插入、更新和删除操作,模拟数据库写入。
- 混合:同时进行读写操作。
测试步骤包括:
- 准备数据:创建测试表并插入数据。
- 运行测试:执行实际的性能测试,测量每秒的查询数、事务数以及延迟。
- 清理数据:删除测试过程中创建的数据。
以下是测试的具体命令:
- 准备数据:
sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=mysql --mysql-user=root --mysql-password=your_password --mysql-db=testdb --mysql-host=127.0.0.1 --table-size=1000000 prepare - 执行测试:
sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=mysql --mysql-user=root --mysql-password=your_password --mysql-db=testdb --mysql-host=127.0.0.1 --table-size=1000000 --threads=4 --time=60 run - 清理数据:
sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=mysql --mysql-user=root --mysql-password=your_password --mysql-db=testdb --mysql-host=127.0.0.1 cleanup
4. 测试结果
以下是执行 sysbench 性能测试后得到的输出结果:
text
复制代码
SQL statistics: queries performed: read: 317464 write: 90704 other: 45352 total: 453520 transactions: 22676 (377.87 per sec.) queries: 453520 (7557.34 per sec.) ignored errors: 0 (0.00 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 60.0090s total number of events: 22676 Latency (ms): min: 5.22 avg: 10.58 max: 75.97 95th percentile: 15.27 sum: 239896.42 Threads fairness: events (avg/stddev): 5669.0000/31.25 execution time (avg/stddev): 59.9741/0.00
5. 结果分析
从上面的输出中,可以得到以下关键统计数据:
-
查询性能:
- 总查询次数:453,520 次,其中读取操作占比最大(317,464 次),写入操作为 90,704 次,其他操作(如更新、删除)为 45,352 次。
- 每秒查询数:7557.34 次,表现出很高的吞吐量。
-
事务性能:
- 总事务数:22,676 次,每秒事务数为 377.87 次。虽然写入操作的数量较少,但事务执行的稳定性较好。
-
延迟表现:
- 最短延迟:5.22 毫秒,表示在大多数情况下,查询响应非常迅速。
- 平均延迟:10.58 毫秒,表明查询性能良好,延迟保持在较低水平。
- 最大延迟:75.97 毫秒,尽管绝大多数查询的延迟较低,但最大延迟的存在表明在高负载下,部分查询可能会遇到较长的响应时间。
- 95th 百分位延迟:15.27 毫秒,表示 95% 的请求在 15 毫秒内完成,说明大多数操作响应较快。
-
线程公平性:
- 每个线程的事件数和执行时间的标准差较小,表明各个线程的工作负载分配相对均衡,测试运行时没有明显的资源竞争问题。
6. 性能瓶颈及优化建议
从测试结果来看,MySQL 在处理混合读写负载时表现出了良好的性能。然而,仍有一些方面可以进行优化:
- 最大延迟:最大延迟为 75.97 毫秒,可能会影响实时性要求较高的应用。在高并发场景下,最大延迟较长,建议进一步优化数据库配置(例如调整缓存、连接池、索引优化等)。
- 写入性能:虽然写入次数相对较少(90,704 次),但可以通过增加数据库的缓存、使用更高性能的存储介质来进一步提高写入性能。
- 查询优化:进一步优化查询,尤其是在进行范围查询和复杂查询时,确保数据库设计和索引的有效性。
7. 结论
本次基准测试表明,MySQL 数据库在处理高并发的读写混合负载时能够提供相对高效的性能,尤其是在低延迟和高吞吐量方面。然而,为了进一步提高性能,尤其是应对更高的并发和大规模数据量,建议进行一些配置优化和硬件升级。基准测试为数据库性能瓶颈的排查和优化提供了宝贵的数据支持。
相关文章:
MySQL 数据库基准测试报告
MySQL 数据库基准测试报告 1. 引言 数据库基准测试是一项重要的性能评估活动,旨在通过模拟实际的工作负载,测试数据库在不同条件下的表现。这些测试有助于发现性能瓶颈并提供优化的依据。在本报告中,我们将基于 sysbench 工具对 MySQL 数据…...
计算机毕业设计Python+大模型神经网络电影推荐 知识图谱图神经网络电影推荐可视化系统 注意力机制 秒杀同类电影推荐项目 GNN GAT
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
Python | Leetcode Python题解之第543题二叉树的直径
题目: 题解: class Solution:def diameterOfBinaryTree(self, root: TreeNode) -> int:self.ans 1def depth(node):# 访问到空节点了,返回0if not node:return 0# 左儿子为根的子树的深度L depth(node.left)# 右儿子为根的子树的深度R …...
【浪潮商城-注册安全分析报告-无验证方式导致安全隐患】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…...
如何设置VSCODE快捷键光标移到行首和行尾
{ "key": "cmdhome", "command": "cursorTop", },{ "key": "cmdend", "command": "cursorBottom", }...
Android——多线程、线程通信、handler机制
Android——多线程、线程通信、handler机制 模拟网络请求,会阻塞主线程 private String getStringForNet() {StringBuilder stringBuilder new StringBuilder();for (int i 0; i < 100; i) {stringBuilder.append("字符串" i);}try {Thread.sleep(…...
Java | Leetcode Java题解之第542题01矩阵
题目: 题解: class Solution {static int[][] dirs {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};public int[][] updateMatrix(int[][] matrix) {int m matrix.length, n matrix[0].length;// 初始化动态规划的数组,所有的距离值都设置为一个很大…...
docker安装低版本的jenkins-2.346.3,在线安装对应版本插件失败的解决方法
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、网上最多的默认解决方法1、jenkins界面配置清华源2、替换default.json文件 二、解决低版本Jenkins在线安装插件问题1.手动下载插件并导入2.低版本jenkins在…...
CSS3新增渐变(线性渐变、径向渐变、重复渐变)
1.线性渐变 代码: 效果图: 使文字填充背景颜色: 效果图: 2.径向渐变 代码: 效果图: 代码图: 效果图: 3.重复渐变 代码: 效果图:...
汽车免拆诊断案例 | 2017款凯迪拉克XT5车组合仪表上的指针均失灵
故障现象 一辆2017款凯迪拉克XT5车,搭载LTG 发动机,累计行驶里程约为17.2万km。车主反映,组合仪表上的发动机转速表、车速表、燃油表及发动机冷却液温度表的指针均不指示,但发动机起动及运转正常,且车辆行驶正常。 故…...
Cloudera Hue深度解析:安装、配置到高级用法
Hue的介绍 HUE 是一个开源的 Apache Hadoop UI 系统,早期由 Cloudera 开发,它是基于 Python Web 框架 Django 实现,后来贡献给开源社区。它包括 3 个部分 hue ui,hue server, hue db。通过使用 Hue 我们可以通过浏览…...
17、论文阅读:VMamba:视觉状态空间模型
前言 设计计算效率高的网络架构在计算机视觉领域仍然是一个持续的需求。在本文中,我们将一种状态空间语言模型 Mamba 移植到 VMamba 中,构建出一个具有线性时间复杂度的视觉主干网络。VMamba 的核心是一组视觉状态空间 (VSS) 块,搭配 2D 选择…...
GPT-5 一年后发布?对此你有何期待?
GPT-5 一年后发布?对此你有何期待? 在最新技术的洪流中,GPT-5即将登场。你是否在思考,它将为我们的生活和工作带来哪些变革?接下来的探索,或许可以启发你对未来的想象。让我们一起深入这场关于未来AI语言模…...
2024中国国际数字经济博览会:图为科技携明星产品引领数智化潮流
10月24日,全球数智化领域的目光齐聚于中国石家庄正定,一场关于数字经济未来的盛会—2024中国国际数字经济博览会在此拉开帷幕。 云边端算力底座的领航者,图为科技携其明星产品惊艳亮相,期待与您共赴一场数智化的非凡之旅ÿ…...
大模型面试题:常见的微调方法有哪些说下原理并对比
更多实时面试题总结请关注我的公众号"算法狗" 或移步至 https://pica.zhimg.com/80/v2-7fd6e77f69aa02c34ca8c334870b3bcd_720w.webp?sourced16d100b 这里说的微调主要是指参数微调,参数微调的方法主要有以下几种: Adapter 在预训练模型每一层…...
CentOS 9 Stream 上安装 PostgreSQL 16
CentOS 9 Stream 上安装 PostgreSQL 16 CentOS 9 Stream 上安装 PostgreSQL 16设置密码并且远程连接 CentOS 9 Stream 上安装 PostgreSQL 16 在 CentOS 9 Stream 上安装 PostgreSQL 16 可以通过以下步骤完成: 添加 PostgreSQL 官方仓库: PostgreSQL 提…...
【数据分享】1901-2023年我国省市县镇四级的逐年最高气温数据(免费获取/Shp/Excel格式)
之前我们分享过1901-2023年1km分辨率逐月最高气温栅格数据和Excel和Shp格式的省市县镇四级逐月最高气温数据,原始的逐月最高气温栅格数据来源于彭守璋学者在国家青藏高原科学数据中心平台上分享的数据!基于逐月数据我们采用求年平均值的方法得到逐年最高…...
使用C++和QT开发应用程序入门以及开发实例分享
目录 1、搭建开发环境(VS2010和QT4.8.2) 2、创建一个QT窗口 3、在QT窗口中添加子窗口 4、QT界面布局 5、QT信号(SIGNAL)和槽(SLOT) 6、最后 C软件异常排查从入门到精通系列教程(专栏文章列…...
Openlayers高级交互(20/20):超级数据聚合,页面不再混乱
本示例在vue+openlayers中使用cluster生成聚合数据的效果。在OpenLayers中实现点聚合(clustering)是一个常见的需求,特别是在处理大量地理数据点时。聚合可以提高地图的性能并减少视觉上的混乱。 一、示例效果图 专栏名称内容介绍Openlayers基础实战 (72篇)专栏提供73篇文…...
qt QStandardItemModel详解
1、概述 QStandardItemModel是Qt框架中提供的一个基于项的模型类,用于存储和管理数据,这些数据可以以表格的形式展示在视图控件(如QTableView、QTreeView等)中。QStandardItemModel支持丰富的数据操作,包括添加、删除…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...
[特殊字符] 手撸 Redis 互斥锁那些坑
📖 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作,想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁,也顺便跟 Redisson 的 RLock 机制对比了下,记录一波,别踩我踩过…...
