加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

(原创)NoSQL非关系型数据库

发布时间:2020-12-13 13:39:34 所属栏目:百科 来源:网络整理
导读:本文主要讲述我对NoSQL非关系型数据库的一点理解 1.NoSQL特点 a.模式自由:增删数据时不必进行数据完整性检查。不需要定义表结构,数据表中的每条记录都可能有不同的属性和格式 b.逆范式化: 为了减少数据冗余,增强数据一致性,SQL要进行范式要求第三范式,

本文主要讲述我对NoSQL非关系型数据库的一点理解

1.NoSQL特点

a.模式自由:增删数据时不必进行数据完整性检查。不需要定义表结构,数据表中的每条记录都可能有不同的属性和格式

b.逆范式化:为了减少数据冗余,增强数据一致性,SQL要进行范式要求第三范式,大量的连接操作会降低存储效率。nosql用空间换时间

c.多分区存储:传统SQL数据库将数据存储在单一节点上,通过增加内存和磁盘空间提升效率,这叫纵向扩展,不可持续,因为系统总会达到一个极限。NoSQL会将数据进行分区,将数据存储在多个节点上,横向扩展方式,提高性能,满足大数据时代要求

d.弹性可扩展:可在系统运行的过程中动态的删除或增加节点。NoSQL可再系统运行过程中动态的增加或删除节点,数据块可以在节点之间自动移动

e.多副本异步复制:为了保证数据的安全,NoSQL数据库会存储多个副本,比如Hadoop生态系统中的Hbase,借助于底层的HDFS分布式文件系统,默认情况下可以有三个副本,且存储在不同的三个节点上
f.软事务:
不能完全满足事务的ACID特性,保证事务的最终一致性事务是SQL数据库的概念,一个事务包含多个数据库操作,且这些操作要么全做要么都不做,比如银行转账,转账和收款就是一个完整的事务,他们是不可拆分的,这样才能保证系统中数据的一致性。NoSQL保证的是事务的最终一致性,即一个用户立即进行数据更新后,其余的用户不能立即得到最新的数据,会有一定延迟。比如12306中看到有票,可是点击买票的时候告诉我们票已售完,火车票数量的更新不能立即同步到所有的节点


2.什么是ACID特性?

A(atomic原子性) C(consistency一致性) I(isolation隔离性) D(durability持久性)

SQL数据库是必须要满足ACID特性的,但是NoSQL非关系型数据库对此没有任何要求


3.NoSQL适用的一些场景

一般对数据冗余程度比较高,并且对数据库不要求有事务一致性,比如像SNS网站,他们并不要求更新的东西要时刻同步在用户的界面,比如新浪微博这个app,实时更新的只有新鲜事下面的那个气泡提示,还有信息推送等,这些必须保证事务一致性,但是新鲜事里面的内容如果保证实时对用户更新的话,那对服务器的压力实在是太大了,并且有大量僵尸粉,服务器会做很多无用功。这时就没必要采用事务一致性,我们点刷新再更新信息,就算信息不是同步的,是过去式的,对我们也没有任何影响。

但是像银行系统就不行了,我们在转账的时候转入方和接收方的信息必须是同步的,如果钱转过去但是接收方的钱款没收到,那在电影里估计早就撕票了。
不能完全满足事务的ACID特性,保证事务的最终一致性

(编辑:李大同)

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

    推荐文章
      热点阅读