我们的app有个聊天的功能,开始设计的是按照轮询的方式来拉消息,拉消息的时候每次从db里查询sql,性能特别差。我想在拉消息的时候,在db上面加一层,但是我没有想好这块用缓存,还是消息队列,还是其他的。缓存的话,没有想好结构怎么设计存储结构,才能在拉消息的时候比较方便的从内存中拉取到所需要的信息
解决方案 »
- 昨天面试没答上来,请高手帮忙看看。
- synchronized method小問題
- java新手的简单问题!
- 很奇怪的问题,我得OS是XP,JDK是1.5,注册RMI服务总是有问题
- 混乱的访问权限和函数覆写,请大家帮忙解释
- 如何使用Borland的Look&Feel?
- 想学JAVA ,买JBuilder9.0装上,买本JBuilder的书,直接这样来学可以吗?
- Java中隐藏基类成员变量问题
- hadoop问题求助大神们,每次重新打开linux都要格式化namenode
- 带有数据库的APPLET为什么在Ie5里不能正常运行?
- 类中默认的构造函数进行了什么操作?
- 创建一个service层实例总是出下面错误,求解
你要查的只是增量 未被查看过的消息
而且还有app在聊天窗口的时候 轮询
没打开聊天窗口的时候 做有新消息 的标示就可以了1、减少轮询请求次数
2、减少io传输数据量
3、数据库垂直拆分 聊天记录只保存10天的记录 其他记录移动到历史聊天记录表中
4、加机器或者加服务,分布式系统(这个你回考虑么?)
5、你需要查多次的 重复性数据 才需要缓存吧