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

简述关系型数据库和非关系型数据库的区别

首先用一个通俗易懂的比喻来形容它们的区别:关系型数据库就类似于Excel,非关系型数据库类似于word,用哪一个,取决你想要编辑和处理什么数据。

关系型数据库:将数据存储在表中的数据库,以二维表为数据结构。表和字段类型之间的关系需要明确定义,以SQL语句为操作指令,也称为SQL数据库。

常见的关系型数据库:

SQLServer:微软公司开发的关系型数据库管理系统。

优点:不开源,它们针对不同的用户提供了具有不同特性的多个版本。拥有丰富的用户界面,可以处理大量数据。

缺点:传统数据库操作频繁容易中断,数据量大负载也大。

MySQL:1995年发布。

优点:开源,拥有很多文档和在线支持。

缺点:规模不大,数据量过操作过于频繁时容易中断。

PostgreSQL:1996年发布。

优点:开源,基于对象-关系模型的数据库,它不只是关系型数据库,用户可以自己拓展功能。

缺点:拓展功能的操作比较复杂,新手不易上手,不如直接使用非关系型数据库。内含文档不如MySQL多。

非关系型数据库:不像关系数据库那样使用行和列的表格模式的数据库。相反,它的存储模型是针对它所存储的数据类型进行优化的。不只有使用SQL语句作为操作指令,可以使用其他类型的查询语言,也被称为NoSQL(Not only SQL)数据库, 不需要预先定义关键数据的模式,比SQL数据库更加灵活。

NoSQL数据库的常见类型:

  1. 面向文档的数据库(Document-oriented databases ):用于存储、管理、检索文档的信息。可以在海量的数据库中快速查询数据。例如MongoDB、CouchDB
  2. 键值存储数据库(Key-Value Stores): 这是一个使用不同键的数据库,其中每个键只与集合中的一个值相关联。把它当作一本字典。NoSQL最简单的数据库类型之一,例如Redis、Tokyo Cabint。
  3. 分布式数据库(Wide-Column Stores): 使用表、行和列,但与关系数据库不同,列的名称和格式在同一表中的行与行之间可能不同,弥补了SQL数据库拓展性的缺陷。
  4. 图储存数据库(Graph Stores): 使用图结构进行具有节点、边和属性的语义查询,以表示和存储数据。

常见的非关系型数据库:

MongoDB:是一个文档存储数据库,也是目前使用中最流行的NoSQL数据库引擎。

优点:它使用类似json的文档来存储数据,并支持在多个服务器上运行。MongoDB允许自动分片,这是一种数据库分区,可以将非常大的数据库分割成更小、更快、更容易管理的部分,称为数据分片。容易设置和上手,专业支持也多。

缺点:是他们不允许连接用于根据两个或多个表之间的公共字段组合数据或行。MongoDB确实有一个LOOKUP函数,官方建议用户不要依赖它们。

Redis:远程字典服务器是一个键值存储。

优点:它支持不同种类的抽象数据结构,如字符串、列表、映射、集合、排序集合等等。它也是开源的。不仅支持多数据类型,而且易于安装。

缺点:同上,不允许连接用于根据两个或多个表之间的公共字段组合数据或行。并且需要掌握Lua编程语言(一种高级脚本语言)

区别:
总结一下关系数据库和非关系数据库之间的区别:关系数据库以行和列的方式存储数据,就像电子表格一样,而非关系数据库则不以行和列的方式存储数据,使用最适合它所存储的数据类型的存储模型(四种存储模型之一)。

如何确定你要使用什么数据库:

  1. 你要处理的数据在使用行和列来表示更合适就用关系型数据库;更适合储存在一个灵活的空间里就用非关系型数据库。

  2. 数据集小/中等,需要进行密集的读/写操作,就用关系型数据库,需要灵活更改数据类型就用非关系型数据库。

主流数据库图表对比

名称MySQLredisMongoDBElasticsearch
概念关系型数据库,将数据保存到不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。一个以key-value形式存储的非关系数据库,6.X之前:单线程,6.X之后:多线程一个以JSON为数据模型的文档非关系型数据库,半内存半硬盘的方式。是一个基于Lucene构建的开源、分布式、RESTful搜索引擎。能够达到实时搜索、稳定、可靠、快速、安装使用方便。支持通过HTTP使用JSON进行数据索引
优点①支持事务管理
②支持多种操作系统
③支持多线程
④可移植性强
⑤支持多种存储引擎
⑥开源、免费
①支持丰富的数据类型
②纯内存操作,速度快
③可以进行持久化操作
④还可以设计key的存活时间(expire)
⑤支持事务
①建模灵活(表结构灵活可变,字段类型可以随时修改)
②json数据模型
③横向扩展简单
④大数据量存储
⑤高并发
①分布式。不需要其他组件,分发是实时的
②完全支持Apache Lucene的接近实时的搜索
③处理多租户不需要特殊配置,而Solr则需要更多的高级设置
④采用了Gateway的概念,使得完备份更加简单
各节点组成对等的网络结构,某些节点出现故障时会自动分配其他节点代替其进行工作
缺点不支持热备份,对XML支持不够良好,
最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限才会发生改变
①redis(ACID处理非常简单)
②无法做太复杂的关系数据库模型
③是数据库容量受到物理内存的限制,不能用作海量数据的高性能
因为不需要定义表结构的特点,所以给多表查询、复杂事务等高级查询带来了阻碍。
不支持事务
还不够自动,不适合当前新的index Warmup API。
字段类型无法修改,写入性能较低,高硬件资源消耗
定位定位于中小型数据库
需要经常用到连表的复杂查询,不适合做海量数据的分析功能
当MySQL单机存储数据达到了TB级别的时候,性能会明显下降。
读写定位在缓存,提高数据读写速度,减轻对数据库存储与访问压力一个以JSON为数据模型的文档非关系型数据库,更偏向于大数据量存储搜索的非关系型数据库,主要是运用与站内搜索,全局搜索关键字
对比选择支持跨平台,运行速度快,支持面向对象,可以处理复杂业务的多表查询①热数据的存储
②list数据类型可以用作FIFO(先进先出)双向链表的消息队列服务
③sort_set可以用作实时排行榜
①对于需要经常改变表结构,字段的情况下,使用MongoDB
②如果业务需求是需要较复杂的多表查询,那么选择MySQL。
当我们需要在海量的数据中筛选出我们想查询的关键字相关信息。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值