NoSQL 背景 在关系数据库下为什么会出现NoSQL

关系型数据库优点:

1 数据持久化

主存储器:快速,数据量小,数据易丢失,存储于内存中,断电丢失(需要先写内存 再任务策略刷新磁盘 事物通过写磁盘log保证持久性)

后备存储器:慢,数据量大,数据持久化,存储于磁盘或ssd,pcie中

2 并发时,通过事物保证原子操作

举个例子:

     两种情况会修改两个表中的同一个字段

     情况A修改U表字段成功-> 情况B修改U表字段成功 -> 情况B修改O表字段成功->情况A修改O表字段成功

分析:结果 两种情况分别修改一张表对应字段成功,造成数据不一致。可以通过数据库事务解决此问题。

事务在出现错误时进行回滚保证数据一致

3 集成

多个应用共享一个数据库,实现数据共享

4 近乎标准的模型

各个关系数据库 关系模型、sql 近乎通用

挑战:

1 数据量越来越大

2 用户越来越多,请求量越来越大

需要提升存储性能

1 纵向扩展:价格昂贵,扩展能力有限

2 水平扩展:价格低,弹性伸缩

关系型数据库为了实现水平扩展,需要进行分库分表 实现分片

分片带来的问题:

1 应用程序需要知道哪个数据在哪片里面

2 查询、参照完整性、事务、一致性控制  都无法以跨分片方式执行

使用NoSQL 的原因:

1 数据量大或数据请求效率要去高,必须把数据放在集群上实现水平扩展

2 更为方便的数据交互方式提高应用程序开发效率

发布了32 篇原创文章 · 获赞 6 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/csdn_9527666/article/details/103951093