Contents

How to choose a No Sql database 介绍了一下怎么选择一个No Sql数据库,下面简单翻译一下重点。

No Sql的数据库可以分为如下4类:

  1. Key-Value数据库
    数据库中存放的Key-Value对。
    • 例子:Redis, Riak,Voldemort
    • 优点:
      1. 数据模型简单
      2. 扩展性好
    • 缺点:
      1. 需要自己创建“外键”
      2. 对复杂数据支持不好
  2. Wide Column 数据库
    数据库中存放的Key-Value对,但是允许嵌套的Key-Value对。
    • 例子:HBase, HyperTable, Cassandra
    • 优点:
      1. 支持半结构化的数据
      2. 自然索引
      3. 扩展性好
    • 缺点:
      1. 对相互联系的数据支持不好
  3. Document数据库
    数据库还是Key-Value,但是数据必须以数据库能理解的格式存储。比如XML,JSON等。
    • 例子:RavenDB, MongoDB, CouchDB
    • 优点
      1. 数据模型强大
      2. 扩展性好
    • 缺点:
      1. 对相互联系的数据支持不好
      2. 查询模型局限于key和index
  4. Graph数据库
    数据以节点的形式存储。
    • 例子:Neo4j, OrientDB, InfinitGraph, AllegroGraph
    • 优点:
      1. 数据模型强大
      2. 关联的数据局部索引
      3. 容易写出强大的查询
    • 缺点:
      1. 不简单
      2. 分区和扩展性复杂

nosql-database.org可以找到按类别区分的所有的NoSql数据库。从nosql.findthebest.com可以看到一个很清楚的比较各种NoSql数据库的表格。

评测NoSql的性能不是一件容易的事情,可以参考Yahoo Cloud Serving Benchmark这个流行的工具。从这里可以找到一个评测的例子。

Contents