由于预估项目未来需要存储的容量可能达到千万级别,数据库初步选择为 mongodb,在数据库表设计方面,内部形成了两种意见,一种就是使用单表存储的方式,把所有的用户的行为记录存储到一张 collection 表里,这样以后这张表可能会很大,但是开发难度低,另一种是根据用户 id 将用户记录存储到各自的 collection 中,这样的好处很明显,在插入数据的时候人为的降低了每个 collection 表的数量,例如一千万条记录分别是属于 10 个用户的,分给 10 个 collection,每个 collection 平均分配到一百万条记录,但是缺点显而易见,开发难度大,我看了下 mongoid 这个 gem,没有对 collection 动态创建的操作,每个 model 固定对应一个 collection,按照第二种设计方案,每创建一个用户就需要动态创建一个 collection,这个感觉在 rails 比较难吧。
tips:
现在rubychina的数据库由mongodb转为postgresql。请问下各位postgresql是否适合这个级别量的数据存储。与mongodb的优缺点是什么。未来的业务就是插入和检索。请教一下有大数据方面经验的专家不吝赐教。