使用MySQL的持久连接,但仍然有许多开放连接

nicael:

我有一个回调的API,它把我的服务器上请求工作的聊天机器人每次有人写留言

最近,我读了所谓的持久连接,这使我觉得我能避免每次我得到我的服务器上请求重新连接到数据库,因为数据库加载需要一些时间,我想,以加快这一进程

所以,我改变了我的脚本的任何连接有一个p:前缀,这样

$conn = new mysqli("p:".$servername, $username, $password, $dbname);

正如我的理解,这样的mysqli找到与相同参数的现有连接或创建一个,如果它不存在,而不是每次都打开一个新的连接

但尽管如此,几个小时后,我已经检查打开的连接,我已经注意到了一堆类似的连接,只有通过不同的ID,像这样

  ID      | USER | HOST      | DB       | COMMAND | TIME | STATE | INFO |
+---------+------+-----------+----------+---------+------+-------+------+
| 5248403 | user | localhost | database | Sleep   |   24 |       | NULL |
| 5248609 | user | localhost | database | Sleep   |  113 |       | NULL |
| 5247822 | user | localhost | database | Sleep   |    1 |       | NULL |
| 5248652 | user | localhost | database | Sleep   |   79 |       | NULL |

(带userdatabase掩蔽实际用户和数据库)


有什么是我误解了关于持久连接?我能做些什么,以避免类似的连接?

你的常识:

教科书XY问题

数据库加载需要一些时间,我想,以加快这一进程

我有一种感觉,持续连接将是最后的选择来解决你的问题,如果有的话。

正如我的理解,这样的mysqli找到与相同参数的现有连接或创建一个,如果它不存在,而不是每次都打开一个新的连接

这是从实际远。在PHP持久性连接绑定到一个数量的线程中执行PHP,而且每一个发生在打开一个连接将举行它的线程进一步开放,从而为它要执行的脚本这个已经打开的连接。指的持久连接是持久的,或者换句话说,一个持续开放。

因此,你可以看到图片的预期。

只要不碰上“有太多的连接”的错误就没事了,但我怀疑你是在使用持久连接的可衡量的好处。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用IPTables阻止所有连接,但仍然能够备份vServer

Django 中带有 Redis 代理的 Celery:任务成功执行,但仍然存在太多持久性 Redis 键和连接

JDBC与MySQL的持久连接

使用pfSense,OpenVPN可以连接但仍然看不到网络

许多MySQL连接

我卸载了vsftpd,但仍然可以连接sftp

Websocket 拒绝连接但仍然可以接收和发射

WiFi不断掉线,但仍然显示我已连接

尝试了所有但仍然出现此错误 - 发生网络错误(例如超时、中断的连接或无法访问的主机)

使用提供程序但仍然看到错误不变违规:在“连接”的上下文中找不到“存储”

可以建立连接,但仍然会得到“连接:网络不可达”

在PDO中使用持久连接有哪些缺点

使用node.js MySQL连接ECONNREFUSED仍然出现错误

持久连接

使用bash连接到开放端口

我在 Eclipse 中添加了 mysql j 连接器。但仍然说找不到适合 jdbc 的驱动程序:mysql://localhost:3306/

使用(声明(类型...))但仍然具有'安全'功能

MySQL C#错误;“连接必须有效且开放”

尽管在每次迭代中都使用“ my”创建了新变量,但仍然出现“在连接或字符串数组中使用未初始化的值”错误

Apollo-server-express内省功能已禁用,但仍然可以通过websocket连接

没有持久连接的信令

lastInsertID 返回 0,即使有持久连接

MySQL Workbench使用已知良好的在线开放数据库测试连接

快递保持连接开放?

Kafka使用者的每个分区是否都有开放的连接?

具有许多String连接的Spark映射

Java 中的 PostgreSQL 持久连接(使用 JDBC)

使用持久连接处理HttpResponseMessage C#

如何关闭家用笔记本电脑上的许多开放端口