我正在开发一个聊天服务器,它使用MySQL数据库进行用户登录和身份验证(消息保存在内存中,分别在关机和启动时保存到数据库或从数据库加载)。每个聊天室都是作为一个单独的进程实现的,因此,如果一个聊天室宕机,整个服务器都不会死掉。当用户连接时,每次他发布消息时,房间服务器进程都会从数据库中读取他的身份验证信息。需要对每条消息进行重新身份验证,以防止同一用户进行多个会话。假设消息以合理的速率发布(每个用户每5-10秒发送一条消息),那么是房间服务器在服务器的整个生命周期内保持持久的MySQL连接更有效,还是服务器连接、发出请求和断开连接更有效?如果房间一次有几天处于空闲状态(无消息),答案是否会改变?最后,如果MySQL服务器在相同的硬件上运行,而不是在网络上的不同机器上运行,答案是否会发生变化?
发布于 2014-01-29 02:05:51
建立连接可能是一件昂贵的事情-从网络的角度来看,以及对数据库的身份验证。我已经将站点从打开/关闭的单个连接转移到连接池,并看到了巨大的性能提升(如果我还记得的话,>=为20% )。
这绝对是我们要走的路。
https://stackoverflow.com/questions/21413251
复制相似问题