偷换概念太严重了,也基本没有真的做过聊天IM系统。
首先聊天不是纯文本,是一整套检索、同步加密(微信应该没有)的结构化数据。
1. 客户端和服务端的交互,不会用纯文本,会有很多额外的字符
2. 消息本身是有状态的,是否已读、是否撤回、是否删除、是否同步、引用
3. 消息不仅仅是文本,还有图片、文件、语音等一系列多模态
4. 消息检索。文本检索grep就是简单的模式匹配,用户去搜聊天记录往往是跨会话全局的搜索。
5. 并发读写如何处理?一个群,同时多条消息。
6. 数学再好好算算,就算一秒一个字,一年是30M个字,所需要的存储空间可不止30M,都不算UTF8编码,JSON协议字段、时间戳、发送人接受人等大量的结构化信息了吧
Replying to @passluo
微信的开发人员根本就不懂该怎么储存数据。这种聊天软件,文本和媒体文件分开存,文本根本就不应该保存在什么数据库(sqlite)里, 一个对话一个文本文件追加就可以了。需要搜索的时候 grep 一下性能完全符合需求。一个对话能有多少文本?一秒一个字 24 小时不间断,一年也就 30M 个字。
回来了回来了,fable
















