暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

NoSQL数据库使用场景以及架构介绍

Raymond运维 2024-07-10
12

关注「Raymond运维」公众号,并设为「星标,第一时间获取更多运维等文章,不再错过精彩内容。


目录

一、什么是NoSQL

二、NoSQL数据库使用场景

三、NoSQL数据库架构

四、NoSQL和关系型数据的区别


一、什么是NoSQL

NoSQL,全称为Not Only SQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL用于超大规模数据的存储,针对非结构化数据、半结构化数据具有很好的支持。NoSQL的特点在于其不仅仅是SQL,没有声明性查询语言,没有预定义的模式,采用键-值对存储、列存储、文档存储、图形数据库,最终一致性而非ACID属性,可以支持非结构化和不可预知的数据。

NoSQL的产生是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。其优点在于高可拓展性、分布式计算、低成本和架构的灵活性,而缺点在于没有标准化,查询功能有限,最终一致性可能不直观(CAP定理),以及关联产品的选择可能有限(根据CAP定理衍生)。

二、NoSQL数据库使用场景

NoSQL数据库的使用场景主要针对非结构化数据或半结构化数据的处理。例如,键值(Key-Value)数据库可以用于存储用户信息,如会话、配置文件、参数、购物车等等。此外,对于网页或复杂对象的存储,以及处理复杂的数据结构等场景,NoSQL数据库也可以发挥出其优势。

NoSQL数据库具有高可拓展性、分布式计算、低成本和架构灵活性等优点,但也存在一些挑战。例如,它们通常缺乏标准化的查询语言,查询功能有限,最终一致性可能不直观,以及关联产品的选择可能有限。

因此,在选择使用NoSQL数据库时,需要根据具体的应用场景和需求进行评估和选择。

三、NoSQL数据库架构

NoSQL数据库的架构通常包括数据存储工具、数据管理工具和数据查询工具。

  1. 数据存储工具:用于将数据存储或映射为表格形式,例如键值(Key-Value)数据库和文档(Document)数据库等。

  2. 数据管理工具:对数据“库”、“表”或类似的概念进行管理,对存储的数据进行管理,对数据的性能和可靠性等进行管理,对分布式系统进行管理,对系统的配置方式、运行状态等进行管理。

  3. 数据查询工具:快速查询海量数据,提供易用的客户访问接口,但一般无法进行过于复杂的查询,或查询性能极低。

此外,NoSQL数据库通常可以在分布式系统中存储数据,通过并行处理提高数据查询和处理效率,因此进行数据分片,使用布隆过滤器等。在系统可伸缩方面,NoSQL数据库通常具有横向扩展、移除或更换的功能。

四、NoSQL和关系型数据的区别

NoSQL和关系型数据库的区别主要体现在以下方面:

  1. 存储方式:关系型数据库采用表格式存储数据,而NoSQL数据库则支持多种存储方式,包括文档、键值对、图结构等。

  2. 存储规范:关系型数据库强调数据的规范性,避免重复,而NoSQL数据库则鼓励冗余,以实现数据的灵活性和可扩展性。

  3. 扩展方式:关系型数据库主要通过提升硬件配置等向上扩展方式来提升性能,而NoSQL数据库则采用分布式架构,通过增加数据库节点向外扩展,以实现更好的可伸缩性。

  4. 查询方式:关系型数据库采用结构化查询语言(SQL)进行查询,而NoSQL数据库则支持非结构化查询语言,以适应多样化的数据结构和查询需求。

  5. 事务支持:关系型数据库支持事务处理,以保证数据的一致性和完整性,而NoSQL数据库则一般不支持事务一致性。

  6. 性能:关系型数据库在读写性能上通常优于NoSQL数据库,特别是在处理规范化的数据时。然而,NoSQL数据库在处理大规模数据和高并发请求时,通常具有更好的性能。

  7. 成本:关系型数据库通常具有较高的成本,因为它们需要高端的硬件和专业的技术支持。相比之下,NoSQL数据库具有简单易部署、开源和成本低的优势。

  8. 数据存储位置:关系型数据库的数据主要存储在磁盘中,而NoSQL数据库的数据主要存储在内存中(部分可以持久化到磁盘)。

  9. 建表原则:关系型数据库建立在关系模型基础上的数据库,依靠表、字段等关系模型以列或字段构建关联,而NoSQL数据模型比较简单,用Key-Value的形式来存储数据。

  10. 并发支持:关系型数据库通过事务和锁来支持并发,高并发情况下执行效率较低。相比之下,NoSQL打破了传统关系型数据库范式的约束和事务一致性,因此并发性能高。

综上所述,NoSQL和关系型数据库各有优缺点,需要根据具体的应用场景和需求进行选择。


链接:https://blog.csdn.net/yangyin1998/article/details/134218220?spm=1001.2014.3001.5502

(版权归原作者所有,侵删)













WeChat group


为方便大家更好的交流运维等相关技术问题,特创建了微信交流群。需要加群的小伙伴们在关注微信公众号后,点击底部菜单关于联系我,即可获取加群方式。


博客

Blog

CSDN博客

掘金博客

长按识别二维码访问博客网站,查看更多优质原创运维等文章。

文章转载自Raymond运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论