Marklogic学习 由浅入深(A)—— Marklogic与MongoDB区别

来源:互联网 发布:如何安装c语言 编辑:程序博客网 时间:2024/05/17 05:00

摘要:Marklogic与MongoDB同为NoSQL数据库阵营,Mongo可以免费试用,而Marklogic却需要高昂的授权费,那Marklogic到底有哪些不同于MongoDB,或者说有哪些优势呢?参见:http://developer.marklogic.com

事务ACID

也许你常听人说使用NoSQL就不能使用事务的特性,那是因为他们没接触过Marklogic,如今的Marklogic完全支持ACID。
ACID指的是Atmoicity、Consistency、isolation、durability,用来确保数据库的可靠性:

  • Atomicity原子性 : 事务不可分割,要么全部执行,要么全不执行;
  • Consistency一致性 : 事务的执行使数据库从一种正确的状态转换到另一种正确的状态;
  • Isolation隔离性 : 事务的执行不受其他事务的影响;
  • Durability持久性 : 事务完成后,所做的修改持续有效,不会回滚。

Marklogic使用’multiversion concurrency control’(MVCC) 多版本并发控制来实现的ACID,因此你可以无锁访问数据。例如:当文档正在写的时候,你可以直接读文档,不会因为读操作而使写操作暂停。
MongoDB采用’eventual consistency’最终一致性,如果多个MongoDB servers 在一个Cluster中运行时,MongoDB的默认设置无法保证数据更新的稳定性,也无法保证更新数据时读操作得到的数据在所有server上都一致。

分区与集群 Sharding and Clusters

企业级NoSQL数据库应该是可以通过新增’server’服务到’cluster’集群来扩大规模。Marklogic可以利用云服务器或者实体服务器实现,它的’auto-scaling tools’自动化工具保证服务的稳定性,而且Marklogic是集合了’application server’服务器,’database’数据库,’search engine’搜索引擎于一体,对于管理员来说,拓扑更为容易。MongoDB此种情况下对硬件的要求就比较高。创建cluster需要考虑’sharding key’片键,片键可以使数据进入分布环境下的不同server,这样可以优化读和写操作。但问题是,片键一旦设置好以后,就不能更改,想要改变就需要把数据复制到另一片空间。这样的分区影响了基于时间点的数据恢复,使文档孤立等。

索引 Indexes

当你插入一个文档到Marklogic,索引将自动创建,使用索引可快速访问数据库中的特定信息。Marklogic提供的index可以检索文档中是否包含’某某‘,range index可以检索满足某一不等式的结果,geospatial index可以定义地理坐标位置。
MongoDB只有一个attribute index,查询最多同时使用两个索引,复杂查询时就需要’compound index’混合索引,这样不利于结果的排序。

集合 Collections

基于文档的NoSQL解决方案需要适当的方式去存储并组织文档,关系型数据库将数据存在’table’表结构中,非关系型则存在’collection’集合中。
MongoDB只允许你将文档存储在一个集合中,如果想要两个或以上的集合,就不行了。Marklogic中的数据支持集合查询,更便捷。

检索 Search

Marklogic有强大的搜索功能,查询结果通过’relevancy ranking’相关度排序,这使得你最想要的结果出显示在最上面,当然这一结果是基于整个数据集的复杂算法而来。
MongoDB的查询接口有点像数据库的statement。如果想实现强大的搜索,就需要第三方工具了,这样当数据改变的时候就需要考虑重建索引的开销。而且这样的结果没有相关性,它只能硬性的符合检索条件,排序也需要手动指定。

安全 Security

Marklogic 8已经拥有了’Common creteria’通用标准认证,通用标准在IT界是广为认可的安全认证。Marklogic是六个拥有此认证的’DBMS’数据库管理系统供应商之一,也是唯一一个NoSQL公司。从Marklogic诞生起,就对用户的数据秉持着安全高于一切的态度, 拥有市场领先的安全特性,足以确保数据安全。

see more at : http://developer.marklogic.com/blog/how-is-marklogic-different-from-mongodb

0 0
原创粉丝点击