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

标签 mysql amazon-web-services amazon-rds

在下图中,它显示当前事件为 99 个连接。 它是如何计算的。

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

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

enter image description here

下面是我运行 SHOW FULL PROCESSLIST 时显示的图像;

enter image description here

最佳答案

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

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

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

关于mysql - RDS Mysql 中的连接选项和处理许多连接的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34415424/

相关文章:

performance - 读取 RDS 只读副本的 IOPS 限制?

mysql - 创建和调用存储过程所需的权限

amazon-web-services - 为云构建 Erlang 应用程序

postgresql - 在 AWS Aurora/postgres 上收听/通知

mysql - 这真的是一个如此复杂的查询还是服务器速度很慢?

php - MySQL 获取最小值、最大值和最旧的分组依据

Python MySQL 数字匹配

PHP/MYSQL 使用盐密码验证用户登录?

linux - 如何在 Linux 上重置配置文件?

java - 指定的队列不存在 - AWS.SimpleQueueService.NonExistentQueue 与 Spring-Boot