gpt4 book ai didi

mysql - 持久mysql连接,无论用户连接如何?

转载 作者:行者123 更新时间:2023-11-29 22:28:22 24 4
gpt4 key购买 nike

我希望每个用户都使用一个 mysql 连接,该连接始终选择数据并在满足特定条件(例如下标)时更新它。最好即使没有用户访问该网站,如果可能的话?

所以,在过去的几天里,我一直在谷歌搜索,努力想办法解决我的问题,但似乎没有人有足够的知识来帮助我解决我的问题。因此,我尝试尽可能简单地提出我的问题,而不会让您对我的代码感到困惑。 (但如果您有兴趣查看代码:http://pastebin.com/dRFzWtEH)

但是,这都是关于带有实时倒计时器的拍卖网站,我只想运行一个 node.js 服务器,它每秒 SELECT 数据并将其发送到 WebSocket 来显示所有访问该网站的用户都会实时看到倒计时和价格更新(出价)。

我通过使用 single-mysql-queries 完成了整个任务,但后来我遇到了 errors 。然后 GitHub node-mysql-module 的作者建议我使用 MySQL Pool。但是根本找不到关于我在这个问题的第一句话中陈述的具体目标的内容。

现在我想问一下,我怎样才能做到这一点,这是否可能,或者至少有一个用户必须在我的网站上?

代码/代码结构/逻辑过程是什么样的?

我想我根本不需要关闭连接,所以我不需要像connection.end()这样的函数?

最佳答案

不,不用担心连接池。这在 MySQL 中不是什么大问题。

此外,“池”还有一个问题——在允许下一个“客户端”使用池连接之前,它必须清除所有设置、@变量、事务状态等。这可能需要一些时间,特别是当客户端距离服务器较远时。

与竞争产品不同,MySQL 的连接/断开时间非常短。

如果您正在开发 Web 产品,请记住 HTTP 是“无状态的”。也就是说,您无法保持从一个“页面”到下一个“页面”的连接。因此,无法保存任何“状态”。

编辑

如果您遇到“跨越池塘”的延迟问题(美国和欧洲之间为 100-200 毫秒),客户端连接池可能非常有用。但是,如果池软件注入(inject)命令来重置事物,则可能会完全破坏池化。

如果您可以打开“常规日志”(在托管服务中,您可能必须使用 log_output=TABLE),请执行此操作以查看注入(inject)了哪些额外命令。

此外,请考虑将多个客户端 SQL 语句组合到存储过程中以减少来回次数。

还可以考虑将 MySQL 服务器移近客户端,或将客户端移近 MySQL 服务器,具体取决于最终用户到客户端的来回与客户端到 MySQL 流量的比较。

关于mysql - 持久mysql连接,无论用户连接如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30056089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com