加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

结构化SQL数据库与非结构化NOSQL数据库大比拼

发布时间:2019-07-14 10:10:35 所属栏目:MySql教程 来源:丁哥开讲
导读:大家好,这一期我们来谈一下数据库,目前有两大类型的数据库,一种是结构化SQL数据库,一种非结构化NOSQL数据库。 比拼1:数据的组织形式。 SQL SQL, 顾名思义是结构化查询语言。它的数据都是结构化的,这个需要在最初创建数据库的时候要做好设计,这个设

结构化SQL数据库 与 非结构化NOSQL数据库大比拼

大家好,这一期我们来谈一下数据库,目前有两大类型的数据库,一种是结构化SQL数据库,一种非结构化NOSQL数据库。

比拼1:数据的组织形式。

结构化SQL数据库 与 非结构化NOSQL数据库大比拼

SQL

SQL, 顾名思义是结构化查询语言。它的数据都是结构化的,这个需要在最初创建数据库的时候要做好设计,这个设计一旦定型以后,再修改的话就会比较麻烦。当然如果设计做得好的话,也就无需再修改了。所以结构化数据最大的一个工作就是表的设计。这是在使用这种数据库的时候,开发工作中的重中之重。

结构化数据的另一个体现就是各种数据之间的关系,比如说1对1的关系,一对多的关系,多对多的关系。

另一个体现就是数据的定义严格,在一个表中只能存放一种表数据,也就是说,你的每一行的数据都要遵循这个表的的定义。这个表里的每行的数据都遵循这个表内定义好的数据类型,不能够存放一些所谓非定义的数据,否则出错。

NOSQL

而NOSQL数据库。它不需要结构化的数据设计。这样它的容错性就很强,也不存在太严格的设计,所以以后的扩展和修改都比较容易。

NOSQL数据库里面不存在关系这个概念,如果你想实现关系,比如说1对1,一对多,多对多,你需要用程序来实现,而不是用数据库本身来实现。

另外一个是一个表中可以存放不同的数据类型, 简单的说就是每一行的数据可以不遵循统一的定义。

比拼2:原子操作

结构化SQL数据库 与 非结构化NOSQL数据库大比拼

我们要看一下原子操作。所谓原子操作,就是指一个操作要么成功,要么失败,没有半途而终的。假设说一个处理订单的操作中存在5个步骤,你处理一个订单,提交订单,开始计算数据,随后写入数据库五个表然后,才返回成功,如果有一个失败,那就返回失败。返回失败就意味着撤回之前所有的操作。

这种原子操作在SQL数据库中非常容易实现,它本身就存在这样的机制叫做事务处理机制。

这也是我们选择SQL数据库的一个重要参考指标。只要我们在处理数据的过程中存在这样的操作,要么成功,要么失败,那么我们首先要选择的就是SQL数据库。

然而在NOSQL数据库中不存在这样的机制。但是这里追求数据的统一性,比如说你有很多个数据集,这里不称之为数据表了。一旦有一部分修改,你必须更新所有的包含这类数据数据集。

比拼3:效率方面。

结构化SQL数据库 与 非结构化NOSQL数据库大比拼

结构化数据库有很多方式可以提高数据的处理效率。比如说创建索引,使用存储程序Stored Procedure, 一些架构如entity framework, hibernate。

但是因为结构化数据库天然的追求数据的完整性,所以它在效率方面还是存在一些瓶颈的。

然而NOSQL非结构化数据库就不存在这样的问题。因为它关心的就是快速的写入数据,查询数据。虽然有一些数据的冗余,但是它的写入和查询速度都非常快,尤其是在处理巨量数据的时候,这个优势特别明显。

但是如果数据集之间的耦合性非常强的话,因为要做到数据的统一,你需要不停的写多个相关的数据集,这样也会大大降低效率。

比拼4:扩展潜力

结构化SQL数据库 与 非结构化NOSQL数据库大比拼

横向扩展和纵向扩展的区别。

横向扩展是指用多台服务器服务一个数据库,这种扩展的好处就是没有极限。这个对于结构化数据库来说,几乎是不可能的。非结构化数据库就可以做到横向扩展。

纵向扩展是指通过提高硬件性能软件性能来提高整体服务器的性能。这种扩展的劣势就是总会达到极限。当然这种扩展对于结构化数据库和非结构化数据库都是适用的。

小结:那么哪个更好呢?

说实在的,一下子很难说,是结构化数据库更好还是非结构化数据库更好?因为这两种数据库的设计初衷是不一样的。

结构化数据库的目标是追求数据操作的完整性,但是对单机服务器的性能要求比较高。

非结构化数据库的设计,追求的是读写的效率和可扩展性,可以实现多机的协作。但是又不注重数据操作的完整性。同时会产生大量的冗余数据。

【编辑推荐】

  1. 2019年7月数据库流行度排行:Oracle王者归来获大幅增长
  2. 对比云端NoSQL数据库类型
  3. 浅谈数据库、JVM、缓存、SQL等性能调优方法和原则
  4. 几款优秀的分布式关系数据库
  5. MySQL数据库查询缓存总结
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读