NoSQL 与 关系型数据库的区别

常见的关系型数据库和非关系型数据库就不多介绍了,下面简单介绍下他们之间的区别.

 

1.SQL数据存在特定结构的表中;而NoSQL比较灵活并具有可扩展性,存储方式可以是JSON文档,哈希表或其他方式.

2.在SQL中,必须要先定义好表和字段结构后才能添加数据,例如定义表的主键,索引,触发器,存储过程等.表结构可以在被定义之后更新,但是如果有比较大的结构变更的话就会变得比较复杂.在NoSQL中,数据可以在任何时候任何地方添加,不需要先定义表.

3.SQL中如果需要增加外部关联数据的话,规范化做法就是在原表中增加一个外键,关联外部数据表.而在NoSQL中除了这种规范化的外部数据表做法外,我们还能用如下的非规范方式把外部数据直接放到原数据中,以提升查询效率.但是缺点也比较明显,更新审核人数据的时候将会比较麻烦.

4.SQL中可以使用JOIN表连接方式将多个关系表中数据用一条简单的查询语句查询出来.NoSQL暂时还没有提供类似JOIN的查询方式对多个数据集的数据做查询.这也是大部分NoSQL使用非规范化的数据存储方式存储数据的原因

5.SQL中不允许删除已经被使用的外部数据,而NoSQL中则没有这种强耦合的概念,可以随时删除任何数据.

6.SQL中如果多张表数据需要同批次被更新,即如果其中一张表更新失败的话其他表也不能更新成功.这种场景可以通过事物来控制,可以在所以命令完成后在统一提交事务.而NoSQL中没有事物这一概念,每一个数据集的操作都是原子级的.

7.在相同水平的系统设计的前提下,因为NoSQL中省略了JOIN查询的消耗,所以理论上在性能上是优于SQL的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值