若有一个任务要求复制 Gmail 的绝大多数功能,用户数量将很庞大,你会采用啥样的数据库

普通的关系型数据库肯定是没戏了。可以试试HBase.不过这种工程上面的事情,不实际用过肯定不好说。好在邮件系统的数据库对transaction要求没那么严格,所以CRUD里面和写相关的CUD响应速度可以牺牲一些,做copy也可以多一些,来换取读取的性能。要复制gmail的绝大多数功能,搜索肯定是首要的。后台数据库针对搜索的优化是必须的。除去搜索,以及对大规模存储,高用户量并发,精确的反spam的要求之外,其他的功能和普通邮件相比没有很特别的,按话题组织邮件主要是前端的事情,后端的要求不高。POP, IMAP的支持也不是很困难的事情。如果是在中国运营,网络分割的事情要考虑清楚,如何尽快的把数据传输到edge去。另外分词和确定spam的事情比较多一点。
■网友
如果要让生命过得更有意义,就要远离这样的任务。Gmail不用传统意义的数据库。
■网友
作大规模web mail是有门槛的。现在这类系统中常用类似GFS的分布式文件系统。老式的设计是往往是基于文件系统作的。关系型数据库不是用来干这个的。
■网友
mail系统不需要用数据库。因为没有啥关联查询。文件系统就OK。其实也不怎么存在啥扩展问题。多一批用户就加一批机器呗。


    推荐阅读