Javascript 是否存在每隔几分钟ping一次数据库的解决方法?

Javascript 是否存在每隔几分钟ping一次数据库的解决方法?,javascript,node.js,performance,node-mysql,Javascript,Node.js,Performance,Node Mysql,因此,我有一个NodeJS-MySql系统,它每10分钟ping一次数据库(可能设置为1分钟),以避免失去连接,但这不是我喜欢编写的代码质量。 所以,现在我在问自己,是否有任何方法可以避免这种情况。 我对游泳池是什么或它们的用途没有计划。我在其他几篇文章中看到过它们,但没有看到它们,这是唯一的选择吗?提前感谢。是的,您应该了解连接池-它们是管理连接(或支持并发的一组连接)的好工具 连接—无论是到数据库还是到任何其他远程系统—都不可靠。他们可以来来去去,你不能假设一种联系会永远存在。主机有时可能会

因此,我有一个NodeJS-MySql系统,它每10分钟ping一次数据库(可能设置为1分钟),以避免失去连接,但这不是我喜欢编写的代码质量。 所以,现在我在问自己,是否有任何方法可以避免这种情况。
我对游泳池是什么或它们的用途没有计划。我在其他几篇文章中看到过它们,但没有看到它们,这是唯一的选择吗?
提前感谢。

是的,您应该了解连接池-它们是管理连接(或支持并发的一组连接)的好工具

连接—无论是到数据库还是到任何其他远程系统—都不可靠。他们可以来来去去,你不能假设一种联系会永远存在。主机有时可能会重新启动,网络链接可能会中断,或者防火墙可能会选择终止您的TCP会话

当然,您可以实现一个“连接回收器”,它维护单个连接,并在关闭时用新连接替换。然而,这将是徒劳无益的,因为一个池已经这样做了——只有它通常在后台管理多个实例。无论如何,这是一个很好的学习练习

池还有另一个优点——它可以根据负载进行扩展,根据需要创建和销毁连接。这样,当应用程序负载较低时,可以减少数据库的负载


作为结束语,如果您使用查询构建器(knex.js)、对象关系映射器(sequelize、TypeORM)或其他类型的抽象数据库访问的工具,不管怎样,它们通常都会使用一个隐藏的池——因此从长远来看,了解这一重要的基础结构层是有益的。

是的,您应该了解连接池——它们是管理连接(或支持并发性的一组连接)的好工具

连接—无论是到数据库还是到任何其他远程系统—都不可靠。他们可以来来去去,你不能假设一种联系会永远存在。主机有时可能会重新启动,网络链接可能会中断,或者防火墙可能会选择终止您的TCP会话

当然,您可以实现一个“连接回收器”,它维护单个连接,并在关闭时用新连接替换。然而,这将是徒劳无益的,因为一个池已经这样做了——只有它通常在后台管理多个实例。无论如何,这是一个很好的学习练习

池还有另一个优点——它可以根据负载进行扩展,根据需要创建和销毁连接。这样,当应用程序负载较低时,可以减少数据库的负载


作为结束语,如果您使用查询构建器(knex.js)、对象关系映射器(sequelize、TypeORM)或其他类型的抽象数据库访问的工具,它们通常会使用隐藏的池,总之,从长远来看,了解这一重要的基础设施层是有益的。

Afaik池用于管理多个db连接。然而,你的问题并不清楚:为什么你一开始就失去了联系?您的节点代码是什么类型的程序?它是一个web服务器吗?我正在制作一个与我的数据库通信的web服务器。我正在断开连接,因为MySql在一段时间后由于不活动而中断了连接。如果旧连接关闭了,那么创建一个新连接怎么样?轮询数据库不是解决方案,那么你应该理解MySql为什么要断开连接并修复它。这不是mysql的预期行为。在标题和描述中,您犯了一些错误,如
ther==>there
wich=>Afaik池用于管理多个db连接。然而,你的问题并不清楚:为什么你一开始就失去了联系?您的节点代码是什么类型的程序?它是一个web服务器吗?我正在制作一个与我的数据库通信的web服务器。我正在断开连接,因为MySql在一段时间后由于不活动而中断了连接。如果旧连接关闭了,那么创建一个新连接怎么样?轮询数据库不是解决方案,那么你应该理解MySql为什么要断开连接并修复它。这不是mysql的预期行为。在标题和描述中,您犯了一些错误,如
ther==>there
wich=>which