博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Elasticsearch和MongoDB简要对比
阅读量:5352 次
发布时间:2019-06-15

本文共 763 字,大约阅读时间需要 2 分钟。

场景和目标

1、mongodb的目标是:“取代oracle和db2”(财务总监时上市说的)。和RDBMS是竞争关系。

2、es的大部分场景是:“一个常见的设置是使用其它数据库作为主要的数据存储,使用 Elasticsearch 做数据检索”(2.X官方文档里说的)。和RDBMS是辅助关系。

相同点:

1、都是以json格式管理数据的nosql数据库。

2、都支持CRUD操作。
3、都支持聚合和全文检索。
4、都支持分片和复制。
5、都支持阉割版的join操作。
6、都支持处理超大规模数据。
7、目前都不支持事务或者叫支持阉割版的事务。

不同点:

1、es是java编写,通过RESTFul接口操作数据。mongodb是C++编写,通过driver操作数据。(es对java开发更有好,利于排查理解)

2、mongodb的分片有hash和range两种方式,es只有hash一种。
3、es是天生分布式,主副分片自动分配和复制,开箱即用。mongodb的分布式是由“前置查询路由+配置服务+shard集合”,需要手动配置集群服务。
4、内部存储ES是到排索引+docvalues+fielddata。mongodb暂时未知。
5、es全文检索有强大的分析器且可以灵活组合,查询时智能匹配。mongodb的全文检索字段个数有限制。
6、es所有字段自动索引,mongodb的字段需要手动索引。
7、es非实时有数据丢失窗口。mongodb实时理论上无数据丢失风险。

总结:

1、es偏向于检索、查询、数据分析,适用于OLAP系统。mongodb偏向于大数据规模下的CRUD,适用于对事务要求不强的OLTP系统。

转载于:https://www.cnblogs.com/wangzhen3798/p/10032898.html

你可能感兴趣的文章
编码命名规范
查看>>
第一阶段工作总结
查看>>
SQLServer修改表数据
查看>>
重大发现 springmvc Controller 高级接收参数用法
查看>>
Gitolite 权限控制
查看>>
08-matplotlib-颜色与样式
查看>>
软件测试作业三
查看>>
Ubuntu解压命令大全
查看>>
linux驱动之LCD
查看>>
java 中 BigDecimal 怎么与 0 比较
查看>>
Ubuntu12.04 root登陆方法【保证有效】
查看>>
nginx gzip压缩
查看>>
【C#Windows 服务】 《三》Timer设置
查看>>
【转】JMeter基础之——一个简单的性能测试
查看>>
JVM-class文件完全解析-访问标志
查看>>
hdu 1002 A + B Problem II 高精度加法
查看>>
实训33 2018.05.10
查看>>
UVALive 6577 Binary Tree 二叉树的LRU串
查看>>
解决在eclipse中配置Tomcat时,出现"Cannot create a server using the selected type"的错误
查看>>
xDebug + webgrind 对 php 程序进行性能分析
查看>>