当前位置: 首页 > news >正文

10-MySQL-性能优化思路

1、优化思路

当我们发现了一个慢SQL的问题的时候,需要做性能优化,一般我们是为了提高SQL查询更快,一个查询的流程由下图的各环节组成,每个环节都会消耗时间,要减少消耗时候需要从各个环节都分析一遍。

2 连接配置优化

        第一个环节是客户端连接到服务端,这块可能会出现服务端连接数不够导致应用程序获取不到连接。
       "MySQL error 1040 "Too many connections" 指的是你的数据库服务器达到了它的最大连接数限制。这通常发生在数据库服务器同时处理了太多的客户端连接请求时。
       1、服务端:从服务端来说可以增加连接数,如果多个应用或者请求同时访问数据库,连接数不够的时候可以设置连接数更大些。

-- 修改最大连接数,当有多个应用连接的时候
SHOW VARIABLES LIKE 'max_connections';

        2、服务端:及时释放不活动的连接,交互式和非交互式的客户端默认超时时间都是28800秒,8小时,我们可以把值调小

-- 及时释放不活动的连接,注意不要释放连接池还在使用的连接
SHOW VARIABLES LIKE 'wait_timeout';

3、客户端:减少从服务端获取的连接数,如果想要不上每一次执行SQL都创建一个新的连接,我们可以使用数据库连接池,实现连接的复用。比如dbcp、c3p0、阿里Druid、Hikari(springboot 2.x版本默认的连接池)
        连接池也不是越大越好,只要维护好一定数量大小的连接池,其他客户端排队等待获取连接就可以了,有的时候连接池越大,效率反而越低。
        Druid默认最大连接池大小是8,Hikari默认最大连接池大小是10。
        一般建议连接池大小是机器核数乘以2+1,也就是说4核的机器,连接池维护9个连接就够了,这个公式从一定程度上来说对其他数据库也是适用的。
        每一个连接,服务端都是需要创建一个线程来处理它的,连接数越多,服务端创建的线程数就会越多。创建连接会消耗时间消耗资源;而且在CPU同时执行执行超过核数的线程是通过分配时间片以及上下文切换方式实现的。CPU的核数是有限的,频繁的上下文切换会造成比较大的开销。
        所以在修改数据库的配置的时候需要结合部署服务器的配置,比如服务器的CPU、内存、磁盘、网络。在不同硬件支撑下MySQL的配置也不尽相同。

参数名称 案例值
http://www.dtcms.com/a/125026.html

相关文章:

  • web前端 html常用标签
  • Java 设计模式:策略模式详解
  • 使用 Fabric.js 构建一个在线白板组件(支持绘图 / 拖拽 / 导出)
  • 【含文档+PPT+源码】微信小程序的线上茶叶交易商城的设计与实现
  • 批处理脚本bat丨遍历一个包含项目名称的数组,并对每个文件中的项目执行 git pull 操作 (一键拉很多文件的代码)
  • AI智能体生态革命:谷歌A2A协议如何重塑未来十年? ——当“安卓模式”撞上AI Agent,一场没有硝烟的战争开始了
  • 支付宝SEO全攻略:小程序搜索优化的系统方法与实践指南
  • Python文件操作完全指南:从基础到高级应用
  • 一文读懂WPF布局
  • 深度解读分销小程序商城源码系统:从搭建到运营的关键指南​​​​
  • IntelliJ IDEA 中安装和使用通义灵码 AI 编程助手教程
  • 第一部分——Docker篇 第五章 容器编排
  • 汽车知识杂志社汽车知识编辑部汽车知识杂志2025年第4期目录
  • 2020 CCF CSP-S2.函数调用
  • IP属地和所在地不一致什么意思?怎么换成另外一个地方的
  • 【MATLAB第114期】基于MATLAB的SHAP可解释神经网络分类模型(敏感性分析方法)
  • [ctfshow web入门] web40
  • 【Kubernetes】Kubernetes 如何进行日志管理?Fluentd / Loki / ELK 适用于什么场景?
  • vue辅助工具(vue系列二)
  • MySQL8.0.31安装教程,附pdf资料和压缩包文件
  • 【Grok 大模型深度解析】第一期:技术溯源与核心突破
  • openEuler 24.03安装docker,docker compose
  • arthas之profiler火焰图基本使用和实践
  • Elasticsearch 向量数据库,原生支持 Google Cloud Vertex AI 平台
  • 光谱相机的关键技术参数
  • Vue3+Vite+TypeScript+Element Plus开发-12.动态路由-动态增加路由
  • 精准测试建设过程中遇到的一些问题
  • 思科交换机配置
  • 电力人工智能多模态大模型创新技术及应用|西安交通大学
  • TCPIP详解 卷1协议 三 链路层