关系型数据库 与 非关系型数据库比较

关系型数据库 与 非关系型数据库比较

详细内容查看我的脑图

  • 写在前面 : 许多大型互联网都会选用MySql+NoSql的组合方案,因为SQL和NoSql都有各自的优缺点

概念

  1. 关系型数据库是指采用了关系模型来组织数据的数据库。
    简单来说,关系模式就是二维表格模型
    主要代表:SQL Server,Oracle,Mysql,PostgreSQL;
  2. NoSQL非关系型数据库,主要指那些非关系型的、分布式的,且一般不保证ACID的数 据存储系统,
    NoSQL提出了另一种理念,以键值来存储,且结构不稳定,
    主要代表 : MongoDB,Redis、CouchDB。

优缺点

1.关系型数据库:

	1.1:优:
	(1)容易理解,二维表的结构非常贴近现实世界,二维表格,容易理解。
	(2)使用方便,通用的sql语句使得操作关系型数据库非常方便。
	(3)易于维护,数据库的ACID属性,大大降低了数据冗余和数据不一致的概率。
	1.2:缺:
	(1)海量数据的读写效率。
	   对于网站的并发量高,往往达到每秒上万次的请求,对于传统关系型数据库来说,对于硬盘性能是一个很大的挑战。
	(2) 高扩展性和可用性。
	   在基于web的结构中,数据库是最难以横向拓展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库没有办法像web Server那样简单的通过添加更多的硬件和服务节点来拓展性能和负载能力。

2.非关系型数据库:

	2.1:优:
		(1)面向高性能并发读写的key-value数据库,主要特点是具有极高的并发读写性能
		(2)面向海量数据访问的面向文档数据库,特点是,可以在海量的数据库快速的查询数据
		(3)面向可拓展的分布式数据库,解决的主要问题是传统数据库的扩展性上的缺陷。
	2.2:缺:
			由于Nosql约束少,所以适合存储较为简单的数据,一些不能够持久化数据

应用场景

  1. 关系型数据库 : 可以适用于一切要求一致性比较高的系统中(关系型数据库的最大优点就是事务的一致性)。比如:银行系统
  2. 非关系型数据库: 在网页应用中,对这种一致性的要求不是那么的严格,允许有一定的时间间隔(并发读写能力极高)。比如: 微博、facebook

对比选择

  • 1.关系型数据库适合存储结构化数据,比如:用户的账号、地址:
    (1)这些数据通常需要做结构化查询,比如说Join,这个时候,关系型数据库就要胜出一筹。
    (2)这些数据的规模、增长的速度通常是可以预期的。
    (3)事务性、一致性,适合存储比较复杂的数据。

  • 2.NoSql适合存储非结构化数据,比如:文章、评论:
    (1)这些数据通常用于模糊处理,例如全文搜索、机器学习,适合存储较为简单的数据。
    (2)这些数据是海量的,并且增长的速度是难以预期的。
    (3)按照key获取数据效率很高,但是对于join或其他结构化查询的支持就比较差。

  • 总结:
    SQL数据库依然强大,可以可靠的处理事务并保持事务的完整性,只有你的数据非常大,操作扩展需要更加分布式的系统时,才考虑NoSql数据库。

  • 详细的对比关系图 (查看百度脑图)

    详细的对比关系图

猜你喜欢

转载自blog.csdn.net/sinat_42338962/article/details/84284582
今日推荐