我应该关闭websocket中的mysql连接吗

我应该关闭websocket中的mysql连接吗,mysql,socket.io,Mysql,Socket.io,简而言之,我正在使用socket.io创建一个聊天服务,我想知道是否应该关闭mysql连接,然后在需要使用它时重新打开。此聊天服务每秒可能接收10-20个事件 我正在套接字外部创建连接: const connection=mysql.createConnection({ 主机:“localhost”, 用户:'根', 密码:“”, 数据库:“dbname”, }) 并且仅用于在触发套接字事件时运行查询 socket.on('check_token',(token)=>{ //令牌被安全地验证,

简而言之,我正在使用socket.io创建一个聊天服务,我想知道是否应该关闭mysql连接,然后在需要使用它时重新打开。此聊天服务每秒可能接收10-20个事件

我正在套接字外部创建连接:

const connection=mysql.createConnection({
主机:“localhost”,
用户:'根',
密码:“”,
数据库:“dbname”,
})
并且仅用于在触发套接字事件时运行查询

socket.on('check_token',(token)=>{
//令牌被安全地验证,而不是按原样传递。
query(“从令牌中选择*,其中令牌=”“+token+””,(错误、结果、字段)=>{…})
})
但是,我应该在完成释放mysql的工作后关闭连接吗?
或者,关闭连接并重新连接是否会使情况变得更糟,因为在触发事件时它将重新连接。

或有没有更好的方法我不知道?

建立到数据库的连接需要很长时间。 作业完成后,不应断开与db的连接。 应用程序服务器应使用连接池。 当服务器启动时启动池,例如10个并发连接。 池大小(连接数量)取决于系统负载。有时需要2个并发连接,有时需要100个。
当您想从数据库中获取数据时,只需从池中获取连接,并在不需要时返回连接。

建立到数据库的连接需要很长时间。 作业完成后,不应断开与db的连接。 应用程序服务器应使用连接池。 当服务器启动时启动池,例如10个并发连接。 池大小(连接数量)取决于系统负载。有时需要2个并发连接,有时需要100个。
当您想从数据库中获取数据时,只需从池中获取连接,并在不需要时返回连接。

您肯定希望保持单个连接或一组持久数据库连接处于打开状态。否则,在每个请求中建立连接的开销将给您带来大量的总体应用程序延迟


保持连接打开仍然需要跟踪它们,以便在连接断开、对等连接断开等情况下尽早释放资源。

您肯定希望保持单个连接或一组持久数据库连接打开。否则,在每个请求中建立连接的开销将给您带来大量的总体应用程序延迟


保持连接打开仍然需要跟踪它们,以便在连接断开、对等连接断开等情况下尽早释放资源。

您应该始终关闭并重新打开JDBC连接,并使用底层连接池。Qestion与JDBC无关您应该始终关闭并重新打开JDBC连接,Qestion与JDBC无关