技术开发 频道

八种主流NoSQL数据库系统对比

  3. MongoDB

  ●所用语言:C++

  ●特点:保留了SQL一些友好的特性(查询,索引)。

  ●使用许可: AGPL(发起者: Apache)

  ●协议: Custom, binary( BSON)

  ●Master/slave复制(支持自动错误恢复,使用 sets 复制)

  ●内建分片机制

  ●支持 javascript表达式查询

  ●可在服务器端执行任意的 javascript函数

  ●update-in-place支持比CouchDB更好

  ●在数据存储时采用内存到文件映射

  ●对性能的关注超过对功能的要求

  ●建议最好打开日志功能(参数 --journal)

  ●在32位操作系统上,数据库大小限制在约2.5Gb

  ●空数据库大约占 192Mb

  ●采用 GridFS存储大数据或元数据(不是真正的文件系统)

  非常好的应用场景:适用于需要动态查询支持;需要使用索引而不是 map/reduce功能;需要对大数据库有性能要求;需要使用 CouchDB但因为数据改变太频繁而占满内存的应用程序。

  例如:你本打算采用 MySQL或 PostgreSQL,但因为它们本身自带的预定义栏让你望而却步。

  4. Riak

  ●所用语言:Erlang和C,以及一些Javascript

  ●特点:具备容错能力

  ●使用许可: Apache

  ●协议: HTTP/REST或者 custom binary

  ●可调节的分发及复制(N, R, W)

  ●用 JavaScript or Erlang在操作前或操作后进行验证和安全支持。

  ●使用JavaScript或Erlang进行 Map/reduce

  ●连接及连接遍历:可作为图形数据库使用

  ●索引:输入元数据进行搜索(1.0版本即将支持)

  ●大数据对象支持( Luwak)

  ●提供“开源”和“企业”两个版本

  ●全文本搜索,索引,通过 Riak搜索服务器查询( beta版)

  ●支持Masterless多站点复制及商业许可的 SNMP监控

  非常好的应用场景:适用于想使用类似 Cassandra(类似Dynamo)数据库但无法处理 bloat及复杂性的情况。适用于你打算做多站点复制,但又需要对单个站点的扩展性,可用性及出错处理有要求的情况。

  例如:销售数据搜集,工厂控制系统;对宕机时间有严格要求;可以作为易于更新的 web服务器使用。

0
相关文章