数据库

关系型数据库、非关系型数据库对比

Posted by Alex on April 25, 2019

关系型数据库

当前主流的有Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL、浪潮K-DB等。

优点

  1. 复杂查询 可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
  2. 事务支持 使得对于安全性能很高的数据访问要求得以实现。

非关系型数据库

NoSQL数据库的四大分类表格分析(NoSQL = Not Only SQL)

实质:非关系型数据库产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能。

优点

  1. 性能 NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。
  2. 可扩展性 同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。

对比

分类 Examples举例 典型应用场景 数据模型 优点 缺点
键值(key-value) TokyoCabinet/Tyrant,
Voldemort,
Oracle BDB,
Redis
内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。 Key指向 Value 的键值对,通常用hash table来实现 查找速度快 数据无结构化,通常只被当作字符串或者二进制数据
列存储数据库 Cassandra,
HBase,
Riak
分布式的文件系统。 以列簇式存储,将同一列数据存在一起 查找速度快,可扩展性强,更容易进行分布式扩展 功能相对局限
文档型数据库 CouchDB,
MongoDb
Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容) Key-Value对应的键值对,Value为结构化数据 数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构 查询性能不高,而且缺乏统一的查询语法
图形(Graph)数据库 Neo4J,
InfoGrid,
Infinite Graph
社交网络,推荐系统等。专注于构建关系图谱 图结构 利用图结构相关算法。比如最短路径寻址,N度关系查找等 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案