How to choose a No Sql database 介绍了一下怎么选择一个No Sql数据库,下面简单翻译一下重点。
No Sql的数据库可以分为如下4类:
- Key-Value数据库
数据库中存放的Key-Value对。- 例子:Redis, Riak,Voldemort
- 优点:
- 数据模型简单
- 扩展性好
- 缺点:
- 需要自己创建“外键”
- 对复杂数据支持不好
- Wide Column 数据库
数据库中存放的Key-Value对,但是允许嵌套的Key-Value对。- 例子:HBase, HyperTable, Cassandra
- 优点:
- 支持半结构化的数据
- 自然索引
- 扩展性好
- 缺点:
- 对相互联系的数据支持不好
- Document数据库
数据库还是Key-Value,但是数据必须以数据库能理解的格式存储。比如XML,JSON等。- 例子:RavenDB, MongoDB, CouchDB
- 优点
- 数据模型强大
- 扩展性好
- 缺点:
- 对相互联系的数据支持不好
- 查询模型局限于key和index
- Graph数据库
数据以节点的形式存储。- 例子:Neo4j, OrientDB, InfinitGraph, AllegroGraph
- 优点:
- 数据模型强大
- 关联的数据局部索引
- 容易写出强大的查询
- 缺点:
- 不简单
- 分区和扩展性复杂
从nosql-database.org可以找到按类别区分的所有的NoSql数据库。从nosql.findthebest.com可以看到一个很清楚的比较各种NoSql数据库的表格。
评测NoSql的性能不是一件容易的事情,可以参考Yahoo Cloud Serving Benchmark这个流行的工具。从这里可以找到一个评测的例子。