NoSQL

关于非关系型数据库(NoSQL)的综述 非关系型数据库(NoSQL)综述 简介以及与关系型数据库的对比 1、简介: 非关系型数据库也叫Nosql数据库,全称是not only sql。 2009年初,Johan Oskarsson举办了一场关于开源分布式数据库的讨论,Eric Evans在这次讨论中提出了NoSQL一词,用于指代那些非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。Eric Evans使用NoSQL这个词... 阅读详情

NoSQL简介

NoSql(NoSQL=Not Only SQL),意思是不仅仅是SQL,泛指非关系型数据库。

NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。这些类型的数据存储不需要固定模式,无需多余操作就可以横向扩展。

特点

易扩展

NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特征;数据之间无关系,这样就非常容易扩展,也就无形之间,在架构的层面上带来了可扩展的能力。

大数据量高性能

NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。数据库的结构简单。

MySQL使用Query Cache,每次表的功能Cache就失效了,是一种大粒度的Cache,而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面来说性能高很多。

多样灵活的数据模型

NoSQL无需实现为要存储的数据建立字段,随时可以存储自定义的数据格式,而在关系数据库里,增删改字段是非常麻烦的。

 

RDBMS vs NoSQL

RDBMS

  • 高度组织化的结构化数据

  • 结构化的查询语言(SQL)

  • 数据的关系都存储在单独的表中

  • 数据操纵语言,数据定义语言

  • 严格的一致性

  • 基础事务

NoSQL

  • 没有声明性查询语言

  • 没有预定义的模式

  • 键-值对存储,列存储,文档存储,图形数据库

  • 最终一致性,非ACID

  • 非结构化和不可预知的的数据

  • CAP定义

  • 高性能,高可用性和可伸缩

常用的NoSQL

Redis、Memcache、Mongdb、Tair、CounchDB、Cassandra、HBase

NoSQL的四大分类

  • KV键值对

  • 文档型数据库

  • 列存储数据库

  • 图关系数据库

分类举例典型应用场景数据模型优点缺点
键值(key-value)Tokyo Cabinet/tyrant Redis,Voldemort Oracle BDB内容缓存,重要用于处理大量数据的高访问负载,也用于一些日志系统Key指向Value的键值对,通常用hash table 来实现查找速度快数据无结构化,通常指被当作字符串或者二进制数据
列存储数据库Cassandra,HBase,Riak分布式的文件系统以列簇式存储,将同一列数据存在一起查找速度快,可扩展性强,更容易进行分布式扩展功能相对局限
文档型数据库CounchDB,MongoDBWeb应用key-value对应的键值对,Value为结构化数据数据结构要求不严格,表结构可变,不用预定义表结构查找性能不高,而且缺乏统一的查找语法
图形数据库Neo4J,InfoGrid,Infinite Graph社交网络,推荐系统,专注于构建关系图谱图结构利用图结构相关算法很多时候需要对整个图做计算才能得出需要信息,而且这种结构不容易做分布式集群

ACID &CAP

ACID

关系型数据库遵循ACID规则 事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:

  1. A (Atomicity)原子性 原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转100元至B账户,分为两个步骤: 1) 从A账户取100元,2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步, 第二步失败,钱会莫名其妙少了100元。

  2. C (Consistency)一致性 一致性也比较容易理解,也就是说数据库要一 直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。

  3. I (Isolation) 独立性 所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。比如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的

  4. D (Durability) 持久性 持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

CAP

C:Consistency (强一致性) A:Availability (可用性) P:Partition tolerance ( 分区容错性)

CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。

C:强一致性 A:高可用性 P:分布式容忍性

  • CA传统Oracle数据库

  • AP大多数网站架构的选择

  • CP Redis、Mongodb

注意:分布式架构的时候必须做出取舍。 一致性和可用性之间取一个平衡。多余大多数web应用,其实并不需要强一致性。 因此牺牲C换取P,这是目前分布式数据库产品的方向

一致性与可用性的决择

对于web2.0网站来说,关系数据库的很多主要特性却往往无用武之地

数据库事务一致性需求:很多web实时系统并不要求严格的数据库事务,对读-致性的要求很低,有些场 合对写一致性要求并不高。允许实现最终一致性。

数据库的写实时性和读实时性需求:对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,比方说发一条消息之后,过几秒乃至十几秒之后,我的订阅者才看到这条动态是完全可以接受的。

对复杂的SQL查询,特别是多表关联查询的需求:任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的报表查询,特别是SNS类型的网站,从需求以及产品设计角度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能被极大的弱化了。

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。 因此,根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则和满足AP原则三大类:

  • CA:单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。

  • CP:满足一致性,分区容忍必的系统,通常性能不是特别高。

  • AP:满足可用性,分区容忍性的系统,通常可能对一-致性要求低一些。

 

有了MySQL,为什么还要有NoSQL 目录noSQL的大概意思理论支撑为什么需要NoSQL为什么NoSQL有处理超大规模和超高并发的场景的优势超大规模的问题超高并发的问题关系型数据库的特点 NoSQL有哪些优势 NoSQL有哪些劣势NoSQL 使用场景全方位对比 noSQL现在非常火,我看过的简历里面十个有九个都写了熟悉noSQL,但是对于noSQL背后的细节却很少有人能讲清楚,甚至连noSQL里面的这个no是什么意思都很多人搞错。这个no并不是not的意思,而是not only的缩写。不得不说这个缩写实在是很坑 阅读详情

相关推荐

AS7341光谱传感器实战:I2C驱动、Arduino与Python代码及校准指南

光谱传感器通过多通道滤光片与光电二极管阵列,将光信号转换为数字量,实现波长级测量。其技术价值在于以低成本替代传统光谱仪,完成颜色识别、光源分析等任务。在植物补光、水质检测等场景中,多通道光谱数据能精准区分红光与深红光比例。AS7341作为9通道(8可见光+1近红外)I2C传感器,支持Arduino、ESP32和树莓派,结合增益与积分时间调节,可适应强弱光环境。本文从芯片原理出发,详解寄存器配置、双平台代码实现、暗电流与白板校准方法,并给出常见问题排查指南,帮助创客快速构建光谱应用。

weixin_42519733的博客 254

NoSQL非关系型数据库概述

文章目录NOSQL概念关系型数据库和非关系型数据库的区别:NoSQL非常重要的原因NoSQL的应用场景 NOSQL概念   NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。Redis就是NOSQL 非关系型数据库的典型代表 关系型数据库和非关系型数据库的区别: 关系型数据库特点(Mysql Oracle SqlServer为代表的数据库) 数据是由一张张的表组成,而且这些表与表之间有关系(一对一,一对多,多对多) 数据是

Java小皮孩 2962

5分钟搞定DataDome滑块验证码:最新Capsolver API实战教程(含代理配置)

本文提供了一份利用Capsolver API快速自动化破解DataDome滑块验证码的实战教程。文章深入剖析了DataDome验证码的环境指纹与行为分析机制,并重点详解了确保成功率的住宅代理配置、API集成步骤及令牌使用等核心环节,帮助开发者高效集成稳定可靠的自动化解决方案。

milk8的博客 498

非关系型数据库(NoSQL)与 关系型数据库(RDBMS)的比较

在数据库技术中,关系型数据库(RDBMS)长期占据主导地位,但随着大数据和云计算的兴起,非关系型数据库(NoSQL)逐渐崭露头角。本文将探讨这两种数据库的区别及其各自的优势。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 8515

如何把Excel的数据导入python?

Python数据分析——excl导入数据的简单方法(xlrd) 本文的初衷是发现网上很多Excel导入Python都没有结合具体Excel文档进行讲解,所以这篇文档将会呈现一个简单快速的Excel+Python的入门方法。 开发环境 Prerequisites: 在开始用Python导入Excel之前,要配置好自己的开发环境,最好有IDE(terminal也可)+安装相应的数据分析包。 IDE :pycharm,vscode,etc 数据分析包:matplotlib,xlrd,numpy,etc 导入数

qq_40783513的博客 7万+

量子密钥分发系统的工程实践(四):FPGA在后处理中的核心实现与优化

本文深入探讨了FPGA在量子密钥分发(QKD)系统后处理中的核心实现与优化策略。文章详细拆解了FPGA如何高效完成原始密钥提取、误码协商和私密放大等关键任务,并分享了流水线设计、资源复用及存储器架构优化等工程实践“心法”,旨在解决高速、实时QKD系统中的性能瓶颈,提升密钥生成率。

t8u9v0的博客 388

NoSQL(非关系型数据库)

一、关系型数据库 简介 关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系型数据库有Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL、浪潮K-DB等。 实体关系模型(Entity-Relationship Model),简称E-R Model是陈品山(Pete...

pty2016611199的博客 4805

CMake是什么?为什么学习CMake

CMake的主要作用和重要性,包括其在跨平台构建中的应用、如何支持多种编译器及操作系统,以及它在管理大型和复杂项目中的优势。

小鱼酱的博客 3872

非关系型数据库(NoSQL

非关系型数据库(NoSQL)是一类灵活、高效、可扩展的数据存储系统,广泛应用于大数据、实时处理、社交网络、物联网等领域。通过去掉传统关系数据库的复杂性和严格的结构要求,NoSQL 数据库提供了更高的性能和更强的扩展能力。其设计理念包括高可扩展性、灵活的数据模型、最终一致性等,以应对海量数据和高并发的需求。4o mini。

lixin5456985的博客 1525

解决Jupyter Notebook中Plotly图表显示问题

摘要:在Jupyter Notebook中使用Plotly绘图时遇到图表无法显示的问题。通过分析发现Python 3.12版本与Jupyter存在兼容性问题。解决方案是将Python降级到3.11版本,重新创建虚拟环境后图表正常显示。这表明版本兼容性对数据可视化工具至关重要,环境配置检查是解决问题的关键步骤。该案例为遇到类似问题的开发者提供了参考方案。

m0_74337424的博客 125

交通仿真软件:SUMO_(1).SUMO基础知识

SUMO 中的交通网络由节点(junctions)和边(edges)组成。节点表示交叉口或路网的连接点,边表示连接节点之间的道路。节点:节点文件(.nod.xml)定义了网络中的所有节点。每个节点有一个唯一的 ID 和坐标。</边:边文件(.edg.xml)定义了连接节点的边。每个边有一个唯一的 ID、起点节点 ID 和终点节点 ID。</车辆文件(.vtype.xml)定义了不同类型的车辆。每个车辆类型可以有不同的参数,例如长度、最大速度、加速度等。</

kkchenjj的博客 1432

非关系型数据库NOSQL

介绍不同于传统关系型数据的非关系型数据库相关知识。

小发菜 1704

YOLO26改进策略【卷积层】| DWRSeg :高效获取多尺度上下文信息,二次改进C3k2

本文记录的是利用DWR 模块改进 YOLO26 的特征提取部分。(Dilation-wise Residual)通过两步残差流程(区域残差化-语义残差化)与分支化空洞卷积结合,引导解码器处理特征与跳接特征的多尺度精准融合。本文利用模块,通过区域残差化生成简洁区域型特征图以简化融合基础,再通过分支化空洞卷积捕捉多尺度空间上下文,同时依托残差连接保留原始特征信息,对YOLO26中不同尺度目标特征进行针对性强化、抑制无效背景特征干扰,在特征融合阶段实现多尺度语义与细节信息的高效互补,避免传统多感受野卷积的冗余计算

Limiiiing的博客 159

NoSql非关系型数据库

Nosql = not only sql,意即“不仅仅是sql”,泛指非关系型数据库。这些类型的数据存储不需要固定的模式(当然也有固定的模式),无需多余的操作就可以横向扩展。NoSql数据库中的数据是使用聚合模型来进行处理的,聚合模型主要分为:KV键值对,BSON,列族,图形,时序,向量等几种数据库结构。

何哥的博客 1236

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

数据库:简述对非关系型数据库(NoSQL)的认识

一、非关系型数据库的概念 随着近些年技术方向的不断拓展,大量的NoSql数据库如MongoDB、Redis、Memcache出于简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式的目的被设计。 NoSQL数据库指的是分布式的、非关系型的、不保证遵循ACID原则的数据存储系统。 NoSQL数据库技术与CAP理论、一致性哈希算法有密切关系。所谓CAP理论,简单来说就是一个分布式系统不可能满足可...

王小二(海阔天空) 3580

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Redis(NOSQL非关系型数据库)(带例子)

Redis 01概述 1.概念 redis是一款高性能的NOSQL系列的非关系型数据库 2.什么是NOSQL 【1】NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库 【2】随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了

weixin_41406651的博客 2023

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

NoSQL(非关系型数据库)之Redis

Redis基于内存运行并支持持久化,采用key-value(键值对)的存储形式。Redis 是一个开源的、使用 C 语言编写的 NoSQL 数据库。Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,Redis的实际处理速度则是完全依靠于主进程的执行效率。若在服务器上只运行一个Redis进程,当多个客户端同时访问时,服务器的处理能力是会有一定程度的下降;

taoxiayu的博客 2007

2-NoSQL(非关系型数据库)-入门概述

1、NoSQL是什么? NoSQL(Not only SQL,不仅仅是数据库),泛指非关系型数据库数据库,其数据存储不需要固定的模式,无需多余操作就可以横向扩展。 2、传统的RDBMS VS NOSQL 3、传统的非关系型数据库:Redis、Mem...

chuiai8582的博客 703

nosql(非关系型数据库)

一、相关文档 nosql百科:https://baike.baidu.com/item/NoSQL/8828247?fr=aladdin nosql发展历史(从mysql说起):https://www.cnblogs.com/lukelook/p/11135209.html 二、学习笔记 nosql(not only sql),泛指非关系型数据库。(因为nosql仅仅是一个概念,nosql下面具体的技术有很多种不同,下一条有说) NoSQL最常见的解释是“non-relational”, “Not Only

iwanttoseee的博客 1663

NoSQL 非关系型数据库

本文介绍了 NoSQL(非关系型数据库)的相关内容。。。

Regino的博客 2006

非关系型数据库NoSQL(Not Only SQL)(非关系型数据库非常灵活)

这个术语最早出现在1998年,但真正流行是在2009年左右,主要是为了解决传统关系型数据库在处理大规模数据时的局限性。类似于一个巨大的哈希表,适合存储简单的数据结构。理解了这些特点后,你就能更好地判断在什么场景下使用NoSQL数据库,以及如何充分发挥它的优势。随着用户增长,你可以通过添加更多服务器节点来提升系统容量,这在NoSQL中是自然且简单的。如果你的应用主要是简单的增删改查操作,NoSQL的性能优势会很明显。

Dontla的博客 1490

NoSQL非关系型数据库简介

一. 非关系型数据库 1. NoSQL简介 NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充. 随着互联网Web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如: 1️⃣.High performance - 对数据库高并发读写的需求. Web2.0

qfchenjunbo的博客 525

NoSQL非關係型數據庫

非關係型數據庫

weixin_52006675的博客 919

NoSQL概述 非关系型数据库

NoSQL 一、关系型数据库存在的问题 1. 问题现象 购票网站,商城网站等在用户高峰期时服务器存在崩溃的现象 2. 现象特征 (1) 海量用户 (2) 高并发 3. 造成原因 服务器奔溃并不是服务器本身的问题,而是关系型数据库(MySQL等)的局限性 (1) 性能瓶颈 关系型数据库在读写数据时会使用磁盘IO,性能较低 (2) 扩展瓶颈 关系型数据库中表与表之间的关系是十分复杂的,某张表可能通过外键关联了许多张表, 而这些被关联的表可能也会去关联很多张表,这就导致查询数据时需要动用多张表,十分 影响查询效率

立志成为一个前端、后端、测试全方位发展的程序员 1628

NoSQL非关系型数据库

什么是NoSQL? NoSQL即Not Only Sql, 意为“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。 为什么会有NoSQL? 非关系型的数据库是为了弥补关系型数据库的不足而产生的,随着web2.0的兴起,传统的关系型数据库在面对超大规模和高并发的互联网项目中显得力不从心,在高并发的要求下,关系型数据库暴露出了以下的问题 ** High performance-对数据库高并发读写的要求** 由于互联网的兴起,一个良好的互联网项目可能对 什么是Redis? ...

空圆小生的博客 433
上一篇: 阿里菜鸟实习生面经分享
下一篇: Java HashMap和HashTable的区别
楚瑞涛
博客等级 码龄9年 57粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值