RDS Mysql 中的连接选项和处理许多连接的最佳方式

Connections Option in RDS Mysql and best way to handle many connections

在下图中,当前 activity 显示为 99 个连接。 具体是怎么算的。

RDS 通过 node.js 网络服务、php 网站访问。每次我做一些操作时,我都会关闭连接。所以一旦关闭它就不会减少,而是会不断增加。后来,当连接数变为 608 时,我收到了太多连接错误消息。我重新启动,然后它就可以工作了。我从未见过它减少。

那么我能处理它的最佳方法是什么。

下面是我 运行 SHOW FULL PROCESSLIST;

时显示的图像

使用 MySQL 连接的基于

PHP 的网页通常会在完成呈现页面内容后立即退出,因此无论您显式调用 mysqli 还是 PDO close,连接都会关闭方法与否。

Node 服务并非如此,运行 很长一段时间,因此很容易泄漏资源。您可能在 Node 服务中打开连接,但没有关闭它们,这会产生您在此处看到的那种行为。 (这是一个很容易犯的错误,尤其是对于我们这些背景主要是更短暂的 PHP 脚本的人来说。)

识别问题的一个好方法是通过 Workbench 或控制台监视器连接到 MySQL 实例并发出 SHOW FULL PROCESSLIST; 以获取当前活动连接的列表,它们的始发主机,以及它们正在执行的查询(如果有的话)。这可能会帮助您缩小连接泄漏的来源范围,以便您可以找出有问题的代码并进行修复。