MySQL调优的五个方向

  1. 客户端与连接层的优化:调整客户端DB连接池的参数和DB连接层的参数。
  2. MySQL结构的优化:合理的设计库表结构,表中字段根据业务选择合适的数据类型、索引。
  3. MySQL参数优化:调整参数的默认值,根据业务将各类参数调整到合适的大小。
  4. 整体架构优化:引入中间件减轻数据库压力,优化MySQL架构提高可用性。
  5. 编码层优化:根据库表结构、索引结构优化业务SQL语句,提高索引命中率。

带来的性能收益排序为 4 > 2 > 5 > 3 > 1,性能收益越大意味着成本越高。

MySQL 连接层优化策略

一个用户请求在Java程序中分配一条线程处理,然后变成一条SQL发往MySQL执行,Java程序和MySQL-Server之间通过建立网络连接进行通信,这些连接称为数据库连接,MySQL内部也是通过一条条线程执行SQL语句。数据库连接数不是越大越好。

数据库连接数越大,内部创建出的工作线程会越多,需要的CPU配置就更高,线程数量超过服务器CPU核心数量,CPU会以时间片调度模式工作,在不同线程中反复切换执行,这个过程远大于线程执行的开销。

连接池分为客户端连接池、服务端连接池,客户端连接池是指Java自身维护的数据库连接对象,如C3P0、DBCP、Druid、HikariCP...等连接池。服务端连接池是指MySQL-Server的连接层中,自身维护的一个连接池,用来实现线程复用的目的。

重点调整的是客户端连接池的连接数,MySQL实例一般情况下只为单个项目提供服务,应用程序的连接数做了限制,也就限制了服务端的连接数。但数据库实例不仅仅只为单个项目提供服务,有时候通过终端工具远程连接MySQL,MySQL的最大连接数和客户端连接池的最大连接数保持一致,很有可能导致MySQL连接数爆满,最终造成终端无法连上MySQL。
客户端的连接池大小计算公式:最大连接数 = (CPU核心数 * 2) + 有效磁盘数(SSD固态硬盘)

1. 偶发高峰类业务的连接数配置

在某个时间段流量显然比平时高很多的业务,这类业务常驻线程数不适合太多。并发来临时会创建大量连接,并发后一直保持数据库连接会导致资源被占用。这类业务最大连接数按上面的公式配置,常驻连接数可配成CPU核数+1,同时缩短连接存活时间来即使释放空闲的数据库连接。

2. 分库分表情况下的连接数配置

以上提到的都是建立在单库情况下的配置,对于读写分离、双主双写、分库分表的情况下,就不适合这样配置。因为部署了多个MySQL节点,意味着拥有堕胎服务器的硬件资源,要根据每个节点的硬件配置规划处合理的连接数。

总结:

连接层的调优实际上是指调整它的参数,即常驻连接数、最大连接数、空闲连接存活时间以及等待队列的容量。对于最佳连接数的计算,首先要把CPU核数放首位考虑,紧接着是磁盘,最后是网络带宽,因为带宽会影响SQL执行时间,综合考虑后计算出最合适的连接数大小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/769199.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenLayers使用

初学ol,实现了高德地图不同图层的切换、交互性地图飞行以及加载本地JSON数据。 说一下不同图层切换的想法: 1.对于标准地图和卫星地图:二者最初便挂载到map上,两个图层是叠加显示的;当点击按钮时,其实是使…

VSCode里python代码不扩展/级联了的解决办法

如图 解决办法:重新下载新的扩展工具 步骤如下 1、在左边工具栏打开Extensions 2、搜索框输入python,选择别的扩展工具,点击Install - 3在扩展工具所在的目录下,新建一个文件,就可以用了

指定IP地址通过远程桌面访问WINDOWS10

1:登录Windows10系统,在控制面板找到系统和安全,打开Windows Defender防火墙。 2:点击感觉设置。 3:在入站规则中,找到远程桌面。查看自己的网络现在是公用,域,还是专用。选择对应的网络。 4&am…

Oracle EBS PO采购订单预审批状态处理

系统版本 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 问题症状: 采购订单状态:预审批 采购订单流程报错如下: po.plsql.PO_DOCUMENT_ACTION_AUTH.approve:90:archive_po not successful - po.plsql.PO_DOCUMENT_ACTION_PVT.do_action:110:unexpected error in acti…

js生成器,迭代器和可迭代对象详解

1.生成器函数和生成器 生成器函数是可以返回一个可迭代对象的特殊函数, 生成器是一个特殊的迭代器, 在js中可以使用function*来定义一个非连续执行的函数作为迭代算法, function* name() {yield value;yield value;yield value; }name: 函…

基于YOLOv5的人脸目标检测

本文是在之前的基于yolov5的人脸关键点检测项目上扩展来的。因为人脸目标检测的效果将直接影响到人脸关键点检测的效果,因此本文主要讲解利用yolov5训练人脸目标检测(关键点检测可以看我人脸关键点检测文章) 基于yolov5的人脸关键点检测:人脸关键点检测…

ROS学习笔记(18):建图与定位(2)

0.前言 上文提到现在的我们已经进入到了SLAM领域的学习,会涉及到大量专业知识,作为一个自学的大三(好吧也快大四了)萌新并不能保证每次文章的专业性和准确性,所以,本人推荐大家能自己去查阅一些相关书籍和…

TOB传输、承载网拓扑图

1、用户面:GNODEB>UPE>SPE>NPE>UPF>CMNET网 2、控制面:GNODEB>UPE>SPE>NPE>IP承载网>核心网

充分利用智慧校园人事系统,提升党政职务管理

智慧校园人事系统中的党政职务管理功能,是专为高校及教育机构设计的,旨在高效、精确地处理与党政职务相关的各类事务,包括职务任命、任期管理、职责分配、考核评估等,以信息化手段促进党务及行政工作的透明化、规范化。 该模块首先…

redis主从复制哨兵模式集群管理

主从复制: 主从复制是高可用Redis的基础,哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷:故障恢复无法自动化;写操作无法负载均衡&…

像学Excel 一样学 Pandas系列-创建数据分析维度

嗨,小伙伴们。又到喜闻乐见的Python 数据分析王牌库 Pandas 的学习时间。按照数据分析处理过程,这次轮到了新增维度的部分了。 老样子,我们先来回忆一下,一个完整数据分析的过程,包含哪些部分内容。 其中&#xff0c…

好久不见!写了一个自动截图神器~【附源码】

文章目录 前言新增功能介绍截图功能快捷键设置 程序设计和使用介绍操作菜单栏选择点击坐标点选择图片选择截图区域快捷键设置 表格循环次数状态栏 使用案例源代码 前言 好久没更新文章了。上一次更新是在4月16日差不多,也只是写了一个错误集,没什么太多…

【Python机器学习】模型评估与改进——在模型选择中使用评估指标

我们通常希望,在使用GridSearchCV或cross_val_score进行模型选择时能够使用AUC等指标。scikit-learn提供了一种非常简单的实现方法,那就是scoring参数,它可以同时用于GridSearchCV和cross_val_score。你只需要提供一个字符串,用于…

基于Vue的MOBA类游戏攻略分享平台

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:Java技术、SpringBoot框架、B/S模式、Vue.js 工具:MyEclipse、MySQL 系统展示 首页 用…

大模型技术在辅助学习中的应用

大模型技术在辅助学习中的应用场景非常广泛,以下是一些典型示例。大模型技术在辅助学习中具有广阔的应用前景,可以为学生提供更加个性化、智能化和高效的学习体验。随着大模型技术的不断发展,我们可以期待在未来看到更多创新应用。北京木奇移…

免费最好用的证件照制作软件,一键换底+老照片修复+图片动漫化,吊打付费!

这款软件真的是阿星用过的,最好用的证件照制作软件,没有之一! 我是阿星,今天要给大家安利一款超实用的证件照工具,一键换底,自动排版,免费无广告,让你在家就能轻松搞定证件照&#…

强化学习的数学原理:最优贝尔曼公式

大纲 贝尔曼最优公式是贝尔曼公式的一个特殊情况,但其也非常重要。 本节课很重要的两个概念和一个工具: 工具不用多说,就是贝尔曼最优公式,概念则是 optimal state value(最优状态价值) 和 optimal polic…

Django开发实战(1)- 认识django

1.django 使用MTV模式,其实与MVC本质一样: model:业务对象和关系映射(ORM) template:客户端页面展示 view:业务逻辑,根据需求调用 2.开发相关 √ python √ html&…

鸿蒙数据防泄漏(DLP)【Data Loss Prevention Kit开发指导】

Data Loss Prevention Kit开发指导 DLP是系统提供的系统级的数据防泄漏解决方案,提供一种称为DLP的文件格式。后缀格式为“原始文件名(包含原始文件后缀).dlp”,例如: “test.docx.dlp”,文件由授权凭证和原始文件密文…

8款你不一定知道的良心软件!

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/我们使用一些流行的软件的时候,往往会忽略一些功能非常强大的软件,因为这些软件的众 多,都因为看不见而丢失&a…