NoSQL的四大类型
1 键值数据库
相关产品:Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached、Tokyo Cabinet/Tyrant、Voldemort、Oracle BDB
应用:内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。
数据模型:Key指向Value的键值对,通常用hashtable来实现
优点:查找速度快、扩展性好、灵活性好、大量写操作时性能高
缺点:数据无结构化,通常只被当作字符串或者二进制数据、条件查询效率较低
2 列族数据库
相关产品:BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS、 Riak
应用:分布式数据存储与管理,分布式的文件系统
数据模型:以列簇式存储,将同一列数据存在一起
优点:查找速度快,可扩展性强,更容易进行分布式扩展
缺点:功能相对局限
3 文档数据库
相关产品:MongoDB、CouchDB、ThruDB、CloudKit、Perservere、Jackrabbit
应用:Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)
数据模型:Key-Value对应的键值对,Value为结构化数据
优点:性能好、灵活性高、复杂性低、数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构
缺点:查询性能不高,而且缺乏统一的查询语法。
4 图形数据库
相关产品:Neo4J、OrientDB、InfoGrid、GraphDB
应用:大量复杂、互连接、低结构化的图结构场合,社交网络,推荐系统等。专注于构建关系图谱
数据模型:图结构
优点:灵活性高、利用图结构相关算法。比如最短路径寻址,N度关系查找等
缺点:复杂性高、很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。