关系型数据库 和 非关系型数据库(2)

【数据库】面经总结 文章目录1. 事务的特性ACID2. 事务并发可能出现的情况3. 隔离级别4. 二叉树、平衡二叉树、B树,B+树?5. MySQL索引原理:6. 最左前缀匹配7. Tree索引和Hash索引的区别8. MySQL索引调优9. 事务的实现原理(redo+undo)10. mysql存储引擎11. MySQL为什么查询速度快其实就是问B+树为什么查询速度快?12.红黑树为什么快,请简述一下原因1.红黑树的应用13. mysql的char和varchar区别14.行级锁和表级锁15.为什么mysql要用B+树16 阅读详情

一、关系型数据库?

1.概念

 关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型。

主要代表:SQL Server,Oracle,Mysql,PostgreSQL。

2.优点

(1).容易理解,二维表的结构非常贴近现实世界,二维表格,容易理解。

(2)使用方便,通用的sql语句使得操作关系型数据库非常方便。

(3)易于维护,数据库的ACID属性,大大降低了数据冗余和数据不一致的概率。

3.瓶颈

(1 )海量数据的读写效率。

     对于网站的并发量高,往往达到每秒上万次的请求,对于传统关系型数据库来说,硬盘I/o是一个很大的挑战。

(2) 高扩展性和可用性。

   在基于web的结构中,数据库是最难以横向拓展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库没有办法像web Server那样简单的通过添加更多的硬件和服务节点来拓展性能和负载能力。

二、从关系型到非关系型

    关系型数据库的最大优点就是事务的一致性,这个特性,使得关系型数据库中可以适用于一切要求一致性比较高的系统中。比如:银行系统。

    但是在网页应用中,对这种一致性的要求不是那么的严格,允许有一定的时间间隔,所以关系型数据库这个特点不是那么的重要了。相反,关系型数据库为了维护一致性所付出的巨大代价就是读写性能比较差。而像微博、facebook这类应用,对于并发读写能力要求极高,关系型数据库已经无法应付。所以必须用一种新的数据结构存储来替代关系型数据库。所以非关系型数据库应用而生。

三、非关系型

1.概念

   NoSQL非关系型数据库,主要指那些非关系型的、分布式的,且一般不保证ACID的数据存储系统,主要代表MongoDB,Redis、CouchDB。

   NoSQL提出了另一种理念,以键值来存储,且结构不稳定,每一个元组都可以有不一样的字段,这种就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,为了获取用户的不同信息,不需要像关系型数据库中,需要进行多表查询。仅仅需要根据key来取出对应的value值即可。

2.分类

 非关系数据库大部分是开源的,实现比较简单,大都是针对一些特性的应用需求出现的。根据结构化方法和应用场景的不同,分为以下几类。

(1)面向高性能并发读写的key-value数据库

主要特点是具有极高的并发读写性能,例如Redis、Tokyo Cabint等。

(2)面向海量数据访问的面向文档数据库

特点是,可以在海量的数据库快速的查询数据。例如MongoDB以及CouchDB.

(3)面向可拓展的分布式数据库

解决的主要问题是传统数据库的扩展性上的缺陷。

3.缺点

  但是由于Nosql约束少,所以也不能够像sql那样提供where字段属性的查询。因此适合存储较为简单的数据。有一些不能够持久化数据,所以需要和关系型数据库结合。

四、对比

1.存储上?

Sql通常以数据库表的形式存储,例如存储用户信息,SQL中增加外部关系的话,需要在原表中增加一个外键,来关联外部数据表。如下:

NoSql采用key-value的形式存储

2.事务?

  SQL中如果多张表需要同批次被更新,即如果其中一张表跟新失败的话,其他表也不会更新成功。这种场景可以通过事务来控制,可以在所有命令完成之后,再统一提交事务。在Nosql中没有事务这个概念,每一个数据集都是原子级别的。

3.数据表 VS 数据集

  关系型是表格型的,存储在数据表的行和列中。彼此关联,容易提取。而非关系型是大块存储在一起。

4.预定义结构 VS 动态结构

   在sql中,必须定义好地段和表结构之后,才能够添加数据,例如定义表的主键、索引、外键等。表结构可以在定义之后更新,但是如果有比较大的结构变更,就会变的比较复杂。

   在Nosql数据库中,数据可以在任何时候任何地方添加。不需要预先定义。

5.存储规范 VS 存储代码

   关系型数据库为了规范性,把数据分配成为最小的逻辑表来存储避免重复,获得精简的空间利用。但是多个表之间的关系限制,多表管理就有点复杂。

   当然精简的存储可以节约宝贵的数据存储,但是现在随着社会的发展,磁盘上付出的代价是微不足知道的。

非关系型是平面数据集合中,数据经常可以重复,单个数据库很少被分开,而是存储成为一个整体,这种整块读取数据效率更高。

6.纵向拓展 VS 横向拓展

   为了支持更多的并发量,SQL数据采用纵向扩展,提高处理能力,通过提高计算机性能来提高处理能力。

    NoSql通过横向拓展,非关系型数据库天然是分布式的,所以可以通过集群来实现负载均衡。

7.其他方面

  比如:关系型是结构化查询语言,NoSql是采用更简单而且精确的数据访问方式;SQl数据库大多比较昂贵,而NoSql大多是开源的。

五、选择?

目前许多大型互联网都会选用MySql+NoSql的组合方案,因为SQL和NoSql都有各自的优缺点。

关系型数据库适合存储结构化数据,比如:用户的账号、地址:

(1)这些数据通常需要做结构化查询,比如说Join,这个时候,关系型数据库就要胜出一筹。

(2)这些数据的规模、增长的速度通常是可以预期的。

(3)事务性、一致性,适合存储比较复杂的数据。

NoSql适合存储非结构化数据,比如:文章、评论:

(1)这些数据通常用于模糊处理,例如全文搜索、机器学习,适合存储较为简单的数据。

(2)这些数据是海量的,并且增长的速度是难以预期的。

(3)按照key获取数据效率很高,但是对于join或其他结构化查询的支持就比较差。

六、推荐:

    SQL和NoSQL区别   

    全面梳理SQL和NoSql数据库的技术差别

总结:
  SQL数据库依然强大,可以可靠的处理事务并且保持事务的完整性,只有你的数据非常大,操作扩展需要更加分布式的系统时,才考虑NoSql数据库。
--------------------- 
原文:https://blog.youkuaiyun.com/lzj3462144/article/details/70973368 

面经-数据库 MySQL是⼀种。 阅读详情

相关推荐

PostgreSQL数据库全攻略:从入门到精通

本文是一份PostgreSQL数据库综合指南,涵盖安装配置、基础操作和高级管理。主要内容包括:1) PostgreSQL简介与各平台安装方法;2) 数据库基本操作,如创建数据库/表、CRUD操作、用户权限管理;3) 高级功能包括索引优化、事务控制、视图、存储过程、触发器和扩展模块;4) 数据库管理维护,涉及配置调优、备份恢复、性能监控和日常维护;5) 安全设置与高可用方案。指南提供了从入门到进阶的实用知识,强调结合官方文档进行深入学习,帮助用户高效使用这一功能强大的开源关系型数据库系统。

索大神的博客 1970

【面经专栏】自己的整理的数据库面经

1、关系型数据库和非关系型数据库 1.mysql和redis的数据库类型 mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢。 redis是NOSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,缓存的读取速度快,能够大大的提高运行效率,但是保存时间有限 2.mysql的运行机制 mysql作为持久化存储的关系型数据库,相对薄弱的地方在于每次请求访问数据库时,都存在着I/O操作,如果反复频繁的访问数据库。第一:会在反复链接数据库上花费大量时间,从而导致运行效率过慢

日月既往,不可复追 1955

Unity URP项目里Post Processing死活没效果?别慌,这5个坑我帮你踩过了

本文详细解析了Unity URP项目中Post Processing效果失效的五大常见问题,包括渲染管线配置冲突、Volume作用域误判、摄像机参数漏配、Layer层级冲突和Profile引用异常。通过实际项目案例和代码示例,提供专业级解决方案,帮助开发者快速排查并修复后处理效果不生效的问题。

weixin_33721427的博客 333

数据库常识

没有摘要

tingtingxiaokeai的博客 6313

SAP MM新手避坑指南:工厂间调拨用301还是303?手把手教你选对移动类型

本文深入解析SAP MM模块中工厂间调拨的301与303移动类型,帮助新手避开常见陷阱。通过对比一步法(301)和两步法(303+305)的核心差异、适用场景及财务影响,提供清晰的决策框架和实战技巧,确保库存调拨的准确性和效率。

weixin_29223603的博客 346

思岚A1 上手教程

前言 寒假在家闲着也是闲着,索性就向是实验室借了一个思岚 A1激光雷达,来进一步完成自己的实验室实习项目。经过一个月在Linux上和ROS上的摸爬滚打,我已经对机器人开发和SLAM有了初步了解,现在就写个上手教程吧(以防自己以后忘了)。 Basic Support 硬件 一台电脑 思岚 A1激光雷达 软件 安装Virtual Box虚拟机 在虚拟机安装Ubuntu 16操作系统 在Ubuntu 16搭建ROS kinetic 简要步骤 1.现在w..

ajxdhe的博客 6385

关系型数据库和非关系型数据库的区别(3种)及应用场景

文章目录一、关系型数据库和非关系型数据库1.1、关系型数据库1.2、非关系型数据库1.3、关系数据库与非关系型数据库的区别① 数据存储方式不同② 扩展方式不同③ 对事务性的支持不同1.4、非关系型数据库产生背景1.5、总结 一、关系型数据库和非关系型数据库 1.1、关系型数据库 一个结构化的数据库,创建在关系模型(二维表型模型)基础上,一般面向于记录 SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作 包括 Oracle ,Mysql,SQL

爱show的小卤蛋的博客 8128

通义千问对接FreeSWITCH实现大模型呼叫中心

通义千问是由阿里云开发的大规模语言模型,具备优秀的自然语言处理能力,支持文本生成、问答对话、摘要提取等多种任务。它不仅拥有丰富的知识储备,还能根据上下文灵活调整回答策略,适用于各种复杂场景下的自动化交流。FreeSWITCH是一个开源的多媒体通信服务器,提供了包括VoIP通话、即时消息传递在内的多种通信服务。它的模块化设计允许开发者根据实际需求定制功能,广泛应用于企业级通信系统中。通过集成通义千问,FreeSWITCH能够实现更智能的客户服务体验。

技术永不眠 Q:53195017 1499

NoSQL(Not Only SQL)是一种非关系型数据库模型,它在web2.0时代随着大数据和互联网应用的增长而兴起

NoSQL(Not Only SQL)是一种非关系型数据库模型,它在web2.0时代随着大数据和互联网应用的增长而兴起,主要目的是为了应对传统关系型数据库难以处理大规模、高并发和复杂数据结构的情况。:NoSQL适应非结构化和半结构化的数据存储,比如JSON、XML或图形数据,这些关系型数据库难以处理的数据形式,NoSQL能够更轻松地存储和查询。:NoSQL不遵循传统的表结构和关系模型,允许更自由的数据模型,比如文档型数据库可以存储JSON格式的数据,适应不同的业务需求变化。

[Blog][Domain] programb.blog.youkuaiyun.com 719

ADF4002分频器避坑指南:常见配置错误及解决方案

本文深入解析了ADF4002分频器在实战应用中的常见陷阱与解决方案。内容涵盖寄存器配置逻辑、硬件PCB布局要点、软件驱动时序细节及系统化调试方法,重点阐述了如何避免因配置错误导致芯片无法正常工作的问题,帮助工程师高效完成高精度频率合成系统设计。

weixin_29192141的博客 96

主流算力卡性能对比分析

超大规模AI训练/HPC:优先选择NVIDIA H100或AMD MI300X,需关注显存带宽和多卡互联能力。企业级AI训练:NVIDIA A100性价比更高,生态成熟。国内自主可控需求:华为昇腾910B是首选,支持液冷和低功耗设计。本地AI推理/游戏:NVIDIA RTX 4090或RTX 5090性价比突出,但需注意显存容量限制。边缘计算/低功耗场景:华为昇腾310或清微智能TX536(能效比6.3TOPS/W@INT8)更合适。

m0_69867914的博客 7804

《NoSQL权威指南》——2.6 数据仓库和列式数据库

本节书摘来自异步社区出版社《NoSQL权威指南》一书中的第2章,第2.6节,作者:【美】Joe Celko(乔•塞科) ,更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.6 数据仓库和列式数据库 当只涉及少数列时,数据仓库可以将部分工作负载转移到列式数据库,以提高性能。多维数据库(Multidimensional database,MDB)或多...

weixin_33828101的博客 187

Claude Code Router 401错误修复

claude code router配置相关环境变量问题

如沐春风 6360

数据库之NoSQL简介

NoSQL最常见的解释是“non-relational”, “Not Only SQL”也被很多人接受。NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。NoSQL是一项全新的数据库革命性运动,其拥护者们提倡运用非关系型的数据存储,相对于铺天盖地关系型数据库运用,这一概念无疑是一种全新的思维的注入。本章详细介绍nosql。

Linux运维老纪的博客 1122

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

NoSQL概述、NoSQL数据库的分类、主流产品及特点

什么是NoSQL NoSQL(NoSQL = Not Only SQL),即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型数据库。 为什么需要NoSQL 随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0 网站,特别是超大规模和高并发的SNS类型的web2.0 纯动态网站已经显得力不从心,暴...

吴声子夜歌的博客 5478

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

NOSQL——非关系型数据库(与关系型数据库的区别)

1.什么是NOSQL? NOSQL(NOSQL=NOT ONLT SQL),即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。 随着互联网web2.0网站的兴起。传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的的SNS类型的web2.0纯动态网站已经显得力不从心,暴漏了很多难以克服的问题,而非关系型的数据库则是由于其本身的特点得到了非常...

Amanda_wr的博客 1135

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

关系型数据库和非关系型数据库的区别2

关系数据库和非关系数据库的区别是,关系数据库只有“表”这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构还有其他操作。 随着网络的不断发展,单纯关系数据库面临挑战。 关系与非关系型数据库的特点 1.关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组

大鹏小站的博客 723

2-3-NOSQL和现在主流数据库的区别

Nosql的全称是Not Only Sql 1.存储方式:关系型数据库是表格式。而Nosql数据库则与其相反,通常存储在数据集中 2.存储结构:关系型数据库对应的是结构化数据,但是修改这些数据比较困难。而Nosql数据库基于动态结构,可以很容易适应数据类型和结构的变化。 3.存储规范:关系型数据库的数据存储为了更高的规范性,把数据分割为最小的关系表以避免重复,获得精简的空间利用。虽然管理起来...

AlphaCat的博客 679

推荐下阿里巴巴开源的数据库客户端工具Chat2DB

推荐下阿里巴巴开源的数据库客户端工具ali-dbhub

u013353446的博客 8701

非关系型数据库NOSQL

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

小发菜 1704

Chat2DB:AI引领下的全链路数据库管理新纪元

Chat2DB以用户为中心,通过自然语言处理、机器学习等先进技术,实现了数据的智能化管理、研发、分析和应用,让每个人都能轻松利用数据,发掘数据的真正价值。为了打破这一局面,Chat2DB作为一款全新的AI数据库管理工具,凭借其全面的功能、智能的操作和广泛的数据库支持,正逐步引领数据库管理进入新的纪元。此外,Chat2DB还能对效率低下的查询进行优化建议,提升数据库性能。Chat2DB作为一款全新的AI数据库管理工具,凭借其全面的功能、智能的操作和广泛的数据库支持,正在逐步引领数据库管理进入新的纪元。

chenchuang0128的博客 965

Day11_01_Redis教程之非关系型数据库

非关系型数据库简介 一.非关系型数据库 1. NoSQL简介 NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充. 随着互联网Web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力...

一一哥 907

NOSQL和REDIS配置与优化

关系型数据库:实例-->数据库-->表(table)-->记录行(row)、数据字段(column)非关系型数据库:实例-->数据库-->集合(collection)-->键值对(key-value)非关系型数据库不需要手动建数据库和集合(表)。Redis(远程字典服务器) 是一个开源的、使用 C 语言编写的 NoSQL 数据库。Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。

StarkDD1127的博客 327

2.初始MySQL,关系型和非关系型数据库区别

数据库分类 关系型数据库:(SQL) Excel(行和列) MySQL,Oracle,Sql Server,DB2,SQLLite 通过表和表之间,行和列之间的关系进行数据的存储 非关系型数据库: (NoSQL) (not only SQL) {key:value} Redis,MongDB 非关系型数据库,对象存储,通过对象的自身的属性来决定。 DBMS 数据库管理系统 数据库的管理软件,科学有效的管理我们的数据。维护和获取数据; MySQL,数据库管理系统 MySQ

angel56789的博客 134

NoSQL

在WEB 2.0的“三高”需求面前1) 对数据库高并发读写的需求2) 对海量数据的高效率存储和访问的需求3) 对数据库的高可扩展性和高可用性的需求传统的关系数据库遇到了难以克服的困难,为了解决这些问题,非关系行数据库应运而生。

u011961970的博客 856

什么是NoSql?

什么是NoSql?         随着web2.0的快速发展,非关系型、分布式数据存储得到了快速的发展,它们不保证关系数据的ACID特性。NoSQL概念在2009年被提了出来。NoSQL最常见的解释是“non-relational”,“Not Only SQL”也被很多人接受         NoSQL一词首先是Carlo Strozzi在1998年提出来的,指的是他开发的一个没有SQL

一名系统架构师的征途 3428
上一篇: 关系型数据库 和 非关系型数据库
下一篇: IDEA生成java说明文档
xiaomgee
博客等级 码龄10年 22粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值