我目前正在开发一个简单的PHP应用程序,用户可以在其中相互发送消息。消息存储在SQL数据库中。我想在每个页面的菜单中放置一些未读邮件,以便用户可以快速查看他们是否有新邮件,而无需定期检查收件箱。
尽管这可能是一个容易解决的问题,但我不知道最佳的性能是什么:
我所有的解决方案都基于服务器,因为我对JS不太熟悉。但是,如果存在使用JavaScript的更好的解决方案,那就可以了。
谢谢您的帮助 !
我建议第四个:
将新消息发送给用户后,您将在中更新计数器memcache。您在客户端创建简单的ajax应用程序,每隔X秒发送一次请求。在服务器端,您只需检查是否存在未读消息。在页面刷新时,您不需要查询数据库,因为您可以memcache快速获得计数。
memcache
如果我在DB中遇到瓶颈,那就是我要做的事情(在90%的情况下,DB是任何数据库驱动的应用程序中最重要的部分)。
这就是我们通常在高负载的网站上所做的事情:我们试图避免任何COUNTER查询。如果没有,我们将数据库反规范化以将计数器存储在适当的表中作为另一列,例如,如果您不能使用memcache,则将未读消息计数器存储为Users表的列。
Users