作者:匿名用户
链接: https://www.zhi Hu.com/question/21909660/answer/22911817
来源:知乎
版权归作者所有。 商业转载请联系作者取得许可。 非商业转载请注明出处。
有几个层面。
1、服务器为什么要管理这么多? 无论如何,微信都是受控制的客户端(对。 这不像Windows上的程序)。 全部直接交给客户,客户自己选择显示什么就可以了。
优点:服务器真的很好写。
缺点:下载数据多,获取时间长,有可能被打破。
不负责任地说,你知道为什么微信朋友圈明明是网站却不用自己的浏览器访问吗? 你知道为什么微信的网络版没有朋友圈吗?
2、客户端无法管理,在服务器上试试吧。 如果用户内容表太麻烦怎么办? 都做成了内容表呢。 因为每个用户反正都是那么好的朋友,所以每个消息都发布在每个用户自己的Timeline表上就可以了。
优点:安全,咨询快。
缺点:数据库容量稍大。
3、数据太大了。 灵魂空虚,真的没有其他方法吗? 那老实说是二级表啊。 服务器在为每个用户获取内容时去获取消息背后的用户ID,确认是否在自己的朋友中。
优点:简化。 符合传统数据库的思路,容易理解。
坏处:咨询太晚了。
4、太晚了,太晚了。 服务器的CPU着火了,数据量小,咨询还早吗? 那只能用映射ID了。 也就是说,通过在各用户每次发布消息时关注自己的映射ID,将自己映射到自己认识的朋友的ID序列上,在获取数据时用户只需看看自己是否在该ID序列中即可。
优点:聪明。 可以用来闪光灯low们。
坏处:没人会做那种事。 用户id哈希信息的处理太复杂了。 不是特殊的系统,不那样做。
5、那真的没有正常人的游戏吗? 那……只能看数据库了。 用图保存所有的东西,查询的时候直接用图查询就可以了。
优点:逻辑直观。
缺点:优化、查询技巧复杂,代码写得模糊不清。 另外,关系并不复杂,在图数据库中不合算。
6、那真的没有简单、存储量少、咨询快的方法吗?
……这个,等你发明了告诉我。 谢谢你。
然后我总结了一些框架视频资料和网络公司java程序员面试中涉及到的大部分面试问题和答案,制作了文档和框架视频资料。 此外,我们还免费与大家分享完整的高清java高级框架学习思维导图。 包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发性等框架技术资料。 希望的资料接收方法:关注私信关键词【资料】即可免费获得! 如果你喜欢这篇文章,请点击关注。 每天都会有更多精彩文章与你分享!