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支持丰富的数据操作,包括添加、删除…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
