NoSQL基础知识小结

NoSQL 基础知识

什么是 NoSQL?

NoSQL(Not Only SQL 的缩写)泛指非关系型的数据库,主要针对的是键值、文档以及图形类型数据存储。

NoSQL 数据库天生支持分布式,数据冗余和数据分片等特性,旨在提供可扩展的高可用高性能数据存储解决方案。

NoSQL 数据库代表:HBase、Cassandra、MongoDB、Redis

MySQL 和 NoSQL 的区别

MySQLNoSQL
数据模型使用关系型数据模型(表格结构)使用非关系型数据模型(键值对、文档、列族等)
数据存储存储在预定义的表中存储在集合、文档、列族等中
数据查询使用结构化查询语言 (SQL)使用特定的查询语言或 API
数据灵活性需要预先定义表结构无需预先定义结构,可以灵活添加字段
数据一致性支持 ACID 事务,保证数据一致性大多数 NoSQL 数据库是 BASE 模型,注重可用性和分区容错性,牺牲一致性
可扩展性垂直扩展或水平分片水平扩展,可以通过添加节点来扩展
扩展性能通常在高负载时性能下降可以在大规模数据时保持高性能
关系处理支持复杂的关系查询和连接操作通常不支持复杂的关系查询
数据模式使用固定模式,需定义表结构动态模式,无需事先定义
主要用途适用于结构化数据和复杂查询适用于半结构化或非结构化数据,高可扩展性和大规模数据存储
事务支持支持原子性、一致性、隔离性和持久性 (ACID) 事务通常不支持 ACID 事务,为了可扩展、高性能进行了权衡,少部分支持比如 MongoDB 。不过,MongoDB 对 ACID 事务 的支持和 MySQL 还是有所区别的。
示例Oracle、MySQL、Microsoft SQL Server、PostgreSQL文档:MongoDB、CouchDB,键值:Redis、DynamoDB,宽列:Cassandra、 HBase,图表:Neo4j、 Amazon Neptune、Giraph

NoSQL 数据库有什么优势?

  1. **架构灵活:**NoSQL 数据库通常提供灵活的架构,以实现更快速、更多的迭代开发。灵活的数据模型使 NoSQL 数据库成为半结构化和非结构化数据的理想之选。
  2. **可扩展性好:**NoSQL 数据库通常被设计为通过使用分布式硬件集群来横向扩展,而不是通过添加昂贵和强大的服务器来纵向扩展。
  3. **高性能:**NoSQL 数据库针对特定的数据模型和访问模式进行了优化,这与尝试使用关系数据库完成类似功能相比可实现更高的性能。
  4. **拥有强大的功能:**NoSQL 数据库提供功能强大的 API 和数据类型,专门针对其各自的数据模型而构建。

NoSQL 数据库有哪些类型?

主要可以分为下面四种类型:

  • 键值:键值数据库是一种较简单的数据库,其中每个项目都包含键和值。这是极为灵活的 NoSQL 数据库类型,因为应用可以完全控制 value 字段中存储的内容,没有任何限制。Redis 和 DynanoDB 是两款非常流行的键值数据库。
  • 文档:文档数据库中的数据被存储在类似于 JSON(JavaScript 对象表示法)对象的文档中,非常清晰直观。每个文档包含成对的字段和值。这些值通常可以是各种类型,包括字符串、数字、布尔值、数组或对象等,并且它们的结构通常与开发者在代码中使用的对象保持一致。MongoDB 就是一款非常流行的文档数据库。
  • 图形:图形数据库旨在轻松构建和运行与高度连接的数据集一起使用的应用程序。图形数据库的典型使用案例包括社交网络、推荐引擎、欺诈检测和知识图形。Neo4j 和 Giraph 是两款非常流行的图形数据库。
  • 宽列:宽列存储数据库非常适合需要存储大量的数据。Cassandra 和 HBase 是两款非常流行的宽列存储数据库。

image

学习参考

posted @   cmty  阅读(10)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示