新手建站广告联盟赚钱,自己可以做网站服务器,石家庄网站制作哪家好,网站优化软件排名器文章目录 一. 什么是NoSQL#xff1f;二. NoSQL分类三. NoSQL与关系数据库有什么区别四. NoSQL主要优势和缺点五. NoSQL体系框架 其它相关推荐#xff1a; 系统架构之微服务架构 系统架构设计之微内核架构 鸿蒙操作系统架构 架构设计之大数据架构#xff08;Lambda架构、Kap… 文章目录 一. 什么是NoSQL二. NoSQL分类三. NoSQL与关系数据库有什么区别四. NoSQL主要优势和缺点五. NoSQL体系框架 其它相关推荐 系统架构之微服务架构 系统架构设计之微内核架构 鸿蒙操作系统架构 架构设计之大数据架构Lambda架构、Kappa架构 所属专栏系统架构设计师 一. 什么是NoSQL
NoSQL(Not-onlySQL)不仅仅只是SQL泛指非关系型的数据库。 是对关系型数据库的补充和完善它不使用传统的表格模式而是使用其他的数据模型来存储数据。NoSQL数据库非常适合处理大规模的非结构化或半结构化数据具有高可扩展性、高灵活性、高性能、高可用性等特点。常见的NoSQL数据库包括MongoDB、Cassandra、Redis等。 二. NoSQL分类
键值key-value
这种类型的数据库有Redis、Memcached、Tokyo Cabinet/Tyrant、Voldement、Oracle BDB典型应用场景内容缓存主要用于处理大量数据的高访问负载也用于一些日志系统等等。数据模型key 指向 value 的键值对通常用hash table来实现。优点查找速度快。缺点数据无结构化通常只被当作字符串或者二进制数据。
列存储数据库
这种类型的数据库有Hbase、Cassandra、Riak典型应用场景分布式的文件系统。数据模型以列簇式存储将同一列数据存在一起。优点查找速度快可扩展性强更容易进行分布式扩展。缺点功能相对局限。
文档型数据库
这种类型的数据库有MongoDB、CouchDB典型应用场景Web应用与key-value类似value是结构化的不同的是数据库能够了解value内容数据模型key-value对应的键值对value为结构化数据。优点数据结构要求不严格表结构可变不需要像关系型数据库一样预先定义表结构。这种数据库类型按照文档格式如JSON、XML等来存储数据数据之间可以有嵌套关系具有更好的灵活性支持各种复杂的数据结构。支持动态模式、可扩展性好、数据结构灵活。缺点查询性能不高而且缺乏统一的查询语法。
图形数据库Graph
这种类型的数据库有Neo4J、InfoGrid、Infinite Graph典型应用场景社交网络推荐系统等。专注于构建关系图谱。数据模型图结构。优点利用图结构相关算法。比如最短路径寻址N度关系查找等。缺点很多时候需要对整个图做计算才能得出需要的信息而且这种结构不太好做分布式存的集群方案。
三. NoSQL与关系数据库有什么区别
对比维度关系数据库NoSQL应用领域面向通用领域 特定应用领域数据容量有限数据海量数据数据类型结构化数据二维表非结构化数据并发支持支持并发但性能低高并发事务支持高事务性弱事务性扩展方式向上扩展向外扩展
与关系型数据库相比NoSQL数据库对数据之间的关系的处理更加灵活因此可以满足更多种类的应用场景例如大数据、云计算、分布式存储等。
四. NoSQL主要优势和缺点
主要优势 1避免不必要的复杂性 2高吞吐量 3高水平扩展能力和低端硬件集群 4避免了昂贵的对象-关系映射
缺点 1数据模型和查询语言没有经过数学验证 2不支持ACID特性 3功能简单 4没有统一的查询模型
五. NoSQL体系框架
NoSQL数据库整体框架分为四层分别为数据持久层data persistence、整体分布层data distribution model、数据逻辑模型层data logical model和接口层interface这四层之间是相辅相成协调工作。
数据持久层定义了数据的存储形式主要包括基于内存、硬盘、内存与硬盘相结合、订制可插拔四种形式。基于内存形式的数据存取速度最快但可能会造成数据丢失基于硬盘的数据可能保存很久但存取速度较基于内存的形式慢内存和硬盘相结合的形式结合了前两种形式的优点既保证了速度又保证了数据不丢失订制可插拔则保证了数据存取具有较高的灵活性。
整体分布层定义了数据是如何分布的相对于关系型数据库NoSQL可选的机制比较多主要有三种形式一是CAP支持可用于水平扩展。
数据逻辑模型层定义了数据之间的联系和操作方式主要包括文档、键值对、图像、列存储等。
接口层定义了与数据访问相关的接口包括查询、索引、事务、权限等。 其它相关推荐 系统架构之微服务架构 系统架构设计之微内核架构 鸿蒙操作系统架构 架构设计之大数据架构Lambda架构、Kappa架构 所属专栏系统架构设计师