如何有效利用MYSQL的连接数
连接数配置2500~3000 依然发现连接不够用?
-- 查看当前最大连接数
SHOW VARIABLES LIKE 'MAX_CONNECTIONS';
-- 查看当前总链接数
SHOW STATUS LIKE 'Threads_connected';
-- 查看当前进程明细
SHOW PROCESSLIST;
合理设置以下参数:
1. MySQL 的参数设置
MySQL 有两个关键参数控制连接的空闲超时时间:
wait_timeout
-
作用:控制非交互式连接(如通过 JDBC、ODBC 等程序连接的客户端)的空闲超时时间。
-
默认值:28800 秒(8 小时)。
-
建议值:根据业务需求设置,通常可以设置为 600 秒(10 分钟)。
interactive_timeout
-
作用:控制交互式连接(如通过 MySQL 命令行客户端或 PHPMyAdmin 等工具连接的客户端)的空闲超时时间。
-
默认值:28800 秒(8 小时)。
-
建议值:与
wait_timeout保持一致,通常设置为 600 秒(10 分钟)。
设置方法
-
临时设置(重启后失效):
sql
复制
SET GLOBAL wait_timeout = 600; SET GLOBAL interactive_timeout = 600;
-
永久设置(修改配置文件):
在 MySQL 配置文件(my.cnf或my.ini)中添加或修改以下内容:ini
复制
[mysqld] wait_timeout = 600 interactive_timeout = 600
然后重启 MySQL 服务。
2. HikariCP 连接池的参数设置
HikariCP 是一个高性能的连接池,以下是关键参数及其与 MySQL 超时设置的关联:
max-lifetime
-
作用:控制连接在连接池中的最大存活时间。超过该时间的连接会被销毁并重新创建。
-
建议值:设置为小于 MySQL 的
wait_timeout和interactive_timeout的值。例如,如果 MySQL 的超时时间是 600 秒,可以将max-lifetime设置为 540000 毫秒(9 分钟)。 -
单位:毫秒。
idle-timeout
-
作用:控制连接在连接池中的最大空闲时间。超过该时间的空闲连接会被销毁。
-
建议值:根据业务需求设置,通常可以设置为 60000 毫秒(1 分钟)。
-
单位:毫秒。
connection-timeout
-
作用:控制从连接池获取连接的最大等待时间。如果超时,会抛出异常。
-
建议值:通常设置为 30000 毫秒(30 秒)。
-
单位:毫秒。
minimum-idle
-
作用:控制连接池中保持的最小空闲连接数。
-
建议值:根据业务需求设置,通常可以设置为 10~50。
-
注意:设置过高会导致资源浪费,设置过低可能影响性能。
maximum-pool-size
-
作用:控制连接池的最大连接数。
-
建议值:根据业务需求和数据库性能设置,通常可以设置为 100~200。
3. 配置示例
以下是一个完整的 HikariCP 配置示例(以 Spring Boot 的 application.yml 为例):
yaml
复制
spring:datasource:hikari:connection-test-query: SELECT 1 # 连接测试查询connection-timeout: 30000 # 连接获取超时时间(30 秒)maximum-pool-size: 150 # 最大连接数max-lifetime: 540000 # 连接最大存活时间(9 分钟)minimum-idle: 10 # 最小空闲连接数idle-timeout: 60000 # 空闲连接超时时间(1 分钟)
4. 参数之间的关系
-
MySQL 的
wait_timeout和interactive_timeout:控制 MySQL 服务器关闭空闲连接的时间。 -
HikariCP 的
max-lifetime:控制连接在连接池中的最大存活时间。 -
HikariCP 的
idle-timeout:控制连接在连接池中的最大空闲时间。
关键点:
-
max-lifetime必须小于 MySQL 的wait_timeout和interactive_timeout,否则连接池中的连接可能会被 MySQL 关闭,导致应用使用无效连接。 -
idle-timeout可以适当设置,以定期清理空闲连接,避免资源浪费。
5. 验证配置
-
使用
SHOW VARIABLES LIKE 'wait_timeout';和SHOW VARIABLES LIKE 'interactive_timeout';确认 MySQL 的超时设置。 -
使用
SHOW PROCESSLIST;查看 MySQL 的连接状态,确认是否有大量Sleep状态的连接。 -
监控 HikariCP 的连接池状态,确保连接池中的连接数在合理范围内。
6. 总结
-
MySQL 设置:
ini
复制
wait_timeout = 600 interactive_timeout = 600
-
HikariCP 设置:
yaml
复制
hikari:max-lifetime: 540000idle-timeout: 60000connection-timeout: 30000minimum-idle: 10maximum-pool-size: 150
通过以上配置,可以确保 MySQL 和 HikariCP 的参数设置是合理的,避免连接被关闭或连接池使用无效连接的问题。
wait_timeout 和 interactive_timeout 通常需要同时设置,因为它们分别控制不同类型的连接空闲超时时间。以下是具体原因和建议:
1. wait_timeout 和 interactive_timeout 的区别
-
wait_timeout:-
适用于非交互式连接(如通过 JDBC、ODBC 等程序连接的客户端)。
-
控制连接在空闲状态下的最大存活时间。
-
-
interactive_timeout:-
适用于交互式连接(如通过 MySQL 命令行客户端或 PHPMyAdmin 等工具连接的客户端)。
-
控制连接在空闲状态下的最大存活时间。
-
2. 为什么要同时设置?
-
如果只设置
wait_timeout,交互式连接的空闲超时时间仍然会使用默认的interactive_timeout值。 -
如果只设置
interactive_timeout,非交互式连接的空闲超时时间仍然会使用默认的wait_timeout值。 -
为了确保所有类型的连接都遵循相同的空闲超时规则,建议同时设置这两个参数。
相关文章:
如何有效利用MYSQL的连接数
连接数配置2500~3000 依然发现连接不够用? -- 查看当前最大连接数 SHOW VARIABLES LIKE MAX_CONNECTIONS; -- 查看当前总链接数 SHOW STATUS LIKE Threads_connected; -- 查看当前进程明细 SHOW PROCESSLIST; 合理设置以下参数: 1. MySQL 的参数设置 …...
【Java学习】多态
面向对象系列三 一、方法相同 二、方法重写 1.概念 2.条件 三、向上转型 1.概念 2.方式 四、方法绑定 五、多态 一、方法相同 方法相同要求方法名相同、参数列表相同、返回值类型相同(与两方法修饰的访问限定符相不相同、静态非静态状态相不相同无关),而且…...
单片机 Bootloade与二进制文件的生成
单片机的 Bootloader 是一种特殊的程序,负责在单片机上电后初始化硬件、更新用户应用程序(固件),并将控制权移交给用户程序。以下是其运行机制和关键流程的详细说明: 1、单片机 Bootloader 的核心作用 固件更新&…...
MySQL数据库(3)—— 表操作
目录 一,创建表 1.1 创建表的SQL 1.2 演示 二,查看表 三,修改表 四,删除表 常用的表操作会涉及到两种SWL语句 DDL(Data Definition Language)数据定义语言:建表、改表、删表等࿰…...
Springboot + Ollama + IDEA + DeepSeek 搭建本地deepseek简单调用示例
1. 版本说明 springboot 版本 3.3.8 Java 版本 17 spring-ai 版本 1.0.0-M5 deepseek 模型 deepseek-r1:7b 需要注意一下Ollama的使用版本: 2. springboot项目搭建 可以集成在自己的项目里,也可以到 spring.io 生成一个项目 生成的话,如下…...
七星棋牌源码高阶技术指南:6端互通、200+子游戏玩法深度剖析与企业级搭建实战(完全开源)
在棋牌游戏行业高速发展的今天,如何构建一个具备高并发、强稳定性与多功能支持的棋牌游戏系统成为众多开发者和运营团队关注的焦点。七星棋牌全开源修复版源码 凭借其 六端互通、200子游戏玩法、多省区本地化支持,以及 乐豆系统、防沉迷、比赛场、AI智能…...
【深度学习在图像配准中的应用与挑战】
图像配准在深度学习中的解决方案越来越多,尤其是通过卷积神经网络(CNN)和生成对抗网络(GAN)等方法,可以显著提升图像配准的效果,尤其是在处理复杂的非刚性变换和大范围的图像差异时。 1. 基于深…...
HarmonyOS 开发套件 介绍 ——上篇
HarmonyOS 开发套件 介绍 ——上篇 在当今科技飞速发展的时代,操作系统作为智能设备的核心,其重要性不言而喻。而HarmonyOS,作为华为推出的全新操作系统,正以其独特的魅力和强大的功能,吸引着越来越多的开发者和用户的…...
跳跃游戏(力扣55)
题目问是否可以跳到数组最后一个下标,有的同学可能会思考如何模拟跳跃这个操作,但这是比较困难的,很容易把自己绕进去。可以换一种思路,我们不需要知道具体是如何跳到最后一个下标的,而是找到最大的跳跃范围。如果该跳…...
网络空间安全(1)web应用程序的发展历程
前言 Web应用程序的发展历程是一部技术创新与社会变革交织的长卷,从简单的文档共享系统到如今复杂、交互式、数据驱动的平台,经历了多个重要阶段。 一、起源与初期发展(1989-1995年) Web的诞生: 1989年,欧洲…...
机器学习 - 衡量模型的特性
最近我们陆续学习了机器学习的一些基础知识,本文来理解一下衡量机器学习模型的特性。了解机器学习模型的特性不仅有助于在理论上理解不同算法的工作原理,也能在实践中指导模型选择、参数调优、结果解释和系统部署,最终提高模型的实际应用效果…...
JUC并发—9.并发安全集合三
大纲 1.并发安全的数组列表CopyOnWriteArrayList 2.并发安全的链表队列ConcurrentLinkedQueue 3.并发编程中的阻塞队列概述 4.JUC的各种阻塞队列介绍 5.LinkedBlockingQueue的具体实现原理 6.基于两个队列实现的集群同步机制 1.并发安全的数组列表CopyOnWriteArrayList …...
Baklib云智协同:数字资产赋能企业效能跃升
内容概要 在数字化转型加速的背景下,Baklib通过构建智能化的知识中台架构,为企业打造了贯穿知识采集、整合、应用的全链路解决方案。该平台以动态知识图谱为核心技术底座,支持文档、音视频、代码等20余种格式的数字资产全生命周期管理&#…...
wordpress adrotate插件 文件上传漏洞
当你爆破进wordpress后台但权限不是管理员的时,如果你有adrotate插件操作权限可以用adrotate的文件上传功能get webshell 该漏洞需要AdRotate版本 < 5.13.3 第一步按顺序点击上传文件 在这里文件一定要压缩成zip格式,上传的时候也是上传这个zip 上…...
iframe 高さ 自動調整
iframeに異なるドメイン(クロスドメイン)のコンテンツを読み込んで高さを自動調節する方法 - みのるの備忘録 wordpress (親) 側の設定 <apex:iframe id"iframe" src"{!IF(isURL,Url, URLFOR($Resource.test))}" scrolling"…...
Apache Logic4j 库反序列化漏洞复现与深度剖析
前言 在渗透测试领域,反序列化漏洞一直是安全研究人员和攻击者关注的焦点。今天,我们将深入探讨 Apache Logic4j 库中的反序列化漏洞,详细了解其原理,并进行完整的复现演示。 一、漏洞原理 Apache Logic4j 库在处理对象的反序列…...
Python爬虫入门到精通:从零开始的数据采集之旅
一、网络世界的"小蜘蛛":什么是爬虫? 想象一下,你是一只勤劳的小蜘蛛,每天在互联网这张巨大的网上爬来爬去。你不需要自己织网,只需要顺着别人织好的网络路径,把有价值的信息收集到自己的小篮子里。这就是爬虫最形象的比喻——一个自动化的信息采集程序。 Py…...
《Operating System Concepts》阅读笔记:p50-p61
《Operating System Concepts》学习第 9 天,p50-p61 总结,总计 12 页。 一、技术总结 1.system call (1) 定义 The primary interface between processes and the operating system, providing a means to invoke services made available by the o…...
Transformer解析——(四)Decoder
本系列已完结,全部文章地址为: Transformer解析——(一)概述-CSDN博客 Transformer解析——(二)Attention注意力机制-CSDN博客 Transformer解析——(三)Encoder-CSDN博客 Transforme…...
Unity之Serialized序列化:从原理到实践
内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity之Serialized序列化:从原理到实践 TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心…...
毕业项目推荐:基于yolov8/yolov5/yolo11的番茄成熟度检测识别系统(python+卷积神经网络)
文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…...
Blaze RangePartitioning 算子Native实现全解析
引言:本文将全面且深入地解析Blaze RangePartitioning算子的Native实现过程。相较于原生Spark,RangePartitioning的Native实现在执行时间上达到了30%的显著下降,同时在资源开销方面节省了高达76%。这一改进大幅降低了运行成本,展现…...
么是静态住宅IP,跨境电商为什么需要静态住宅IP
静态住宅IP是指直接分配给一台属于私人住宅网络的设备的固定IP地址,这种地址不会频繁更改。它们作为代理IP,使使用者能够通过这些代理服务器进行网络访问,而对外显示的则是该住宅的IP地址。由于这些IP地址属于真实的住宅或个人,并…...
1、Window Android 13模拟器 将编译的映像文件导入Android Studio
1、环境准备 编译环境:Ubuntu-18.04.5编译版本:android13-release下载地址:清华大学开源软件镜像站AOSP # 下载repo # 同步代码:repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android13-r…...
MTK-Android13-包安装器PackageInstaller 静默安装实现
目的 我们最终是为了搞明白安装的整个流程。一方面通过安卓系统自带的包安装器来了解PMS 安装流程;另一方面熟悉框架层Framework 针对Android apk 安装流程。 前两篇文章分析了PackagerInstaller 安装流程。 Android13-包安装器PackageInstaller-之apk安装跳转 An…...
基于ffmpeg+openGL ES实现的视频编辑工具-opengl相关逻辑(五)
在我们的项目中,OpenGL ES 扮演着至关重要的角色,其主要功能是获取图像数据,经过一系列修饰后将处理结果展示到屏幕上,以此实现各种丰富多样的视觉效果。为了让大家更好地理解后续知识,本文将详细介绍 OpenGL 相关代码。需要注意的是,当前方案将对 OpenGL 的所有操作都集…...
QUdpSocket的readyRead信号只触发一次
问题 QUdpSocket的readyRead信号只触发一次。 原因 on_readyRead槽函数里必须读出现有数据后,才能触发新的事件。 解决办法 在on_readyRead槽函数里取出数据。 void MainWindow::on_readyRead() {qDebug() << "on_readyRead in";while (m_udp…...
【数据库系统概论】第第12章 并发控制
12.1 并发控制概述 并发控制是指数据库管理系统(DBMS)通过控制多个事务同时执行,保证数据的一致性和隔离性,避免事务间的相互干扰。 事务串行执行不能充分利用系统资源 并发执行的优点:能够减少处理机的空闲 时间&a…...
HTML应用指南:利用GET请求获取全国泸溪河门店位置信息
随着新零售业态的快速发展,门店位置信息的获取变得越来越重要。作为新兴烘焙品牌之一,泸溪河自2013年在南京创立以来,一直坚持“健康美味,香飘世界”的企业使命,以匠人精神打造新中式糕点。为了更好地理解和利用这些数据,本篇文章将深入探讨GET请求的实际应用,并展示如何…...
tg 2025 最新免费社工库机器人 已验证
最后验证时间:2025-01-17 AI社工库 t.me/AI_SGKBOT?s… X-ray社工库 t.me/Zonesgk_bot… 狗狗免费个户机器人 t.me/gougou88_bo… 免费个户机器人 t.me/SGKQMS_bot?… solo社工库 t.me/abababnbot?… 情报局社工库 t.me/qbjSGKxuanw… space社工库 …...
