0

0

mysql数据库的并发连接数与系统配置

P粉602998670

P粉602998670

发布时间:2026-01-19 11:03:37

|

701人浏览过

|

来源于php中文网

原创

max_connections是MySQL服务端允许同时建立的客户端连接数上限,不是能稳定处理的并发请求数或实际QPS;它仅是连接层门禁,设过高易致OOM或线程崩溃,需配合系统资源、ulimit、内核参数及连接池优化。

mysql数据库的并发连接数与系统配置

MySQL 的 max_connections 是什么,又不是什么

max_connections 是 MySQL 服务端允许同时建立的客户端连接数上限,它不等于“能稳定处理的并发请求数”,更不等于“系统能承受的实际 QPS”。这个值只是连接层的门禁开关,设得太高而没配好系统资源,反而会触发 OOM 或线程调度崩溃。

  • 默认值通常为 151(MySQL 5.7+),生产环境往往需调高,但不能盲目翻倍
  • 每个连接至少占用几 MB 内存(含线程、网络缓冲、临时表空间等),max_connections = 2000 可能直接吃掉 4~6 GB 内存
  • Linux 进程级限制(ulimit -n)必须 ≥ max_connections + 预留文件描述符(如 binlog、redo log、socket 监听等),否则 MySQL 启动失败或运行中报 Too many open files

Linux 系统侧必须同步调整的三个关键项

MySQL 不会自动绕过内核限制。只改 my.cnf 里的 max_connections,90% 的高并发场景会卡在系统层。

  • /etc/security/limits.conf 中为 mysql 用户设置:
    mysql soft nofile 65535
    mysql hard nofile 65535
  • /etc/systemd/system/mysqld.service.d/override.conf(若用 systemd)中追加:
    [Service]
    LimitNOFILE=65535
  • 确认内核参数:sysctl net.core.somaxconn 建议 ≥ 1024,避免 TCP 连接堆积在 SYN_QUEUE

如何判断当前连接数是否真成瓶颈

别只看 SHOW STATUS LIKE 'Threads_connected'。真实压力来自活跃查询、锁等待和 IO 阻塞。

MTTSHOP包包免费商城系统
MTTSHOP包包免费商城系统

一款非常包包、衣服、鞋子类网站,页面干净清洁、一目了然,mttshop打造精致、简单、易用、免费的商城。 系统要求:IIS5.1以后,必须安装.net 3.5 安装步骤: 1、下载完成后,直接解压文件mttshop.rar 2、附加数据库:解压后的可以找一个叫db的文件夹,解压后直接附加就可以,支持SQL 2000、2005、2008 3、配置web.config文件,找到key=&qu

下载
  • 检查长期空闲连接:SELECT ID, USER, HOST, COMMAND, TIME, STATE FROM information_schema.PROCESSLIST WHERE COMMAND != 'Sleep' OR TIME > 60;
  • 识别连接泄漏:应用端未调用 connection.close(),导致 Threads_connected 持续缓慢上涨,且 Threads_running 始终很低
  • 对比 Aborted_connectsConnection_errors_* 状态变量,突增说明是认证失败或握手超时,而非连接数不足

连接池比调大 max_connections 更有效

多数 Web 应用的并发请求远高于数据库能健康承载的连接数。硬扛不如收敛——把连接复用做扎实。

  • Java 应用优先用 HikariCP,maximumPoolSize 建议设为 CPU 核数 × (2~4),而非照搬 QPS
  • Python 的 pymysqlmysql-connector-python 必须启用 pool_size,禁用 autocommit=True 以外的长事务
  • 避免在事务中混入 HTTP 调用、文件读写等阻塞操作,否则连接被独占时间远超 SQL 执行本身
实际压测中,常看到 DBA 把 max_connections 从 500 改到 2000,结果 innodb_row_lock_time_avg 翻了 3 倍——问题不在连接数,而在没拆分热点行更新或缺少合适的索引。连接数配置永远要和慢查、锁、IO 能力一起看。

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

760

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

639

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

763

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

619

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1285

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

549

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

579

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

709

2023.08.11

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

0

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.8万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 801人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号