Elatisticsearch Mongodb选型对比

对比项目 Elatisticsearch Mongodb
索引(index) 数据库(database)
文档类型(es7已经不区分文档类型) 集合(collection)
节点/角色 Master:主节点,Master eligible:合格节点,Data:数据节点,Coordinating:协调节点,Ingest:ingest节点 configs,mongos,mongodb
集群方案 分片(副本) -> segment 分片(副本)-> chuck
分片方案 默认根据id hash后分片,可以指定路由分片 根据片键范围分片(必须),片键确定后无法修改
分片时机 创建索引时指定分片数量,且指定后不能更改 自动分片(Auto-Sharding),当分片到达一定的大小后自动分片
集群平衡 增加/下线节点、增加副本时集群自动平衡,集群平衡时只需要移动分片(主或副本)即可,主/副本可处于集群任一节点上 mongos会定期检查集群是否平衡,集群平衡分片的主和副本需要同时迁移,由于一个分片是一个副本集,所以一个分片的主/副本在固定的机器上
冷热分离 通过设置node.rack_id,node.attr.box_type标记冷节点和热节点,可以方便的将冷热数据分离 通过设置副本集的tag,可将分片数据均衡到指定副本集,可以方便实现冷热数据分离
分片方式 hash分片 范围分片、hash分片、组合分片、标签分片
mongodb可以配置读副本集的primary/Secondary,写数据时可以配置 Write Concern 保障读写数据的一致性

es 具有更好的扩容缩容能力,mongo可以添加分片,但是删除分片非常麻烦