【面试必备】非关系数据库的优缺点及四大分类

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 【面试必备】非关系数据库的优缺点及四大分类

一、NoSql简介

NoSQL (Not Only SQL ),意即不仅仅是SQL , 泛指非关系型的数据库。Nosql这个技术门类,早期就有人提出,发展至2009年趋势越发高涨。


1、关系型数据库

关系型数据库代表:mysql,oracle,sqlserver

特点:

`1. 以表结构存储数据
 2. 表与表之间存在关系
 4. 持久化数据到硬盘
 6. 支持事务控制
 5.用于传统项目 数据安全性(钱)
 数据库事务必须具备ACID特性,ACID是Atomic原子性,Consistency一致性,Isolation隔离性,Durability持久性。`


2、非关系型数据库

非关系型数据库代表:redis,HBase,Mongodb


非关系型特点:


 `1. 不以表结构存储数据
 2. 也没有关系
 3.  事务弱化,没有事务   
 4.  数据存储在内存
 5. 大数据相关项目,核心考虑:程序运行效率,弱化事务`

3、对象型数据库【对象型数据库】

存储对象的,已经被淘汰


二、NoSQL有什么用

1、Nosql的优点

随着互联网网站的兴起,传统的关系数据库在应付动态网站,特别是超大规模和高并发的纯动态网站已经显得力不从心,暴露了很多难以克服的问题。


如:

商城网站中对商品数据频繁查询、

对热搜商品的排行统计、

订单超时问题、


以及微信朋友圈(音频,视频)存储等相关使用传统的关系型数据库实现就显得非常复杂,


虽然能实现相应功能但是在性能上却不是那么乐观。


nosql这个技术门类的出现,更好的解决了这些问题,它告诉了世界不仅仅是sql。


nosql主要针对大数据处理!


2、Nosql的优缺点

(1)非关系型数据库优点:

海量数据的增删改查是可以的。

海量数据的维护和处理非常轻松。

NoSql具有扩展简单、高并发、高稳定性、成本低廉的优势。

可以实现数据的分布式处理。


(2)非关系型数据库缺点:

NoSql暂时不提供sql支持,会造成开发人员额外学习的成本。

数据和数据没有关系,他们之间就是单独存在的。

非关系数据库没有关系,没有强大的事务关系,没有保证数据的完整性和安全性适合处理海量数据,保证效率,不一定安全。

持久化的性能低。

出道时间短,功能没有关系型数据库完善。

NoSql的架构特性决定了其很难保证数据得完整性,适合一些特殊的应用常见使用。


贵 内存比较贵


效率越高 数据安全性低


3、目前开发主流 关系型数据库+非关系型数据

核心数据(关系型数据)+次要数据(非关系型数据库)


三、NoSql数据库的四大分类

1、键值(key-value)存储数据库

(1)键值型

这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。


(2)特点

Key/value模型对于IT系统来说的优势在于简单、易部署。


但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。


(3)相关产品

`Tokyo Cabinet/Tyrant,
Redis key value  内存
Ssdb  key value  磁盘
Voldemort 
Oracle BDB`

2、列存储数据库,海量存储

`# 1.说明
- 这部分数据库通常是用来应对分布式存储的海量数据。 传统应用 互联网  大数据领域(key指向多个列)
# 2.特点
- 键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。 
# 3.相关产品
- Cassandra、HBase(hadoop)、Riak.`

3、文档性数据库

{“id”:“21”,“name”:“zhangsan”,“age”:“23”}

`# 1.说明
- 文档型数据库的灵感是来自于Lotus Notes办公软件的,
   而且它同第一种键值存储相类似该类型的数据模型是版本化的文档
   ,半结构化的文档以特定的格式存储,比如JSON。
   文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高
# 2.特点
- 以文档形式存储
# 3.相关产品
- MongoDB、CouchDB、
  MongoDb(4.x)(单条支持事务) 
  mysql inndb 单条加锁 
  myisam 表. 国内也有文档型数据库SequoiaDB,已经开源。`


4、图形(Graph)数据库(阿里云 OSS 对象存储 图片 视频 音频)

`# 1.说明
- 图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,
   并且能够扩展到多个服务器上。
- NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。
  许多NoSQL数据库都有REST式的数据接口或者查询API。
# 2.特点
# 3.相关产品
- Neo4J、InfoGrid()、 Infinite Graph、`

五、NoSQL应用场景

数据模型比较简单


需要灵活性更强的IT系统


对数据库性能要求较高


不需要高度的数据一致性


相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
相关文章
|
8天前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
2月前
|
存储 关系型数据库 MySQL
【Java面试题汇总】MySQL数据库篇(2023版)
聚簇索引和非聚簇索引、索引的底层数据结构、B树和B+树、MySQL为什么不用红黑树而用B+树、数据库引擎有哪些、InnoDB的MVCC、乐观锁和悲观锁、ACID、事务隔离级别、MySQL主从同步、MySQL调优
【Java面试题汇总】MySQL数据库篇(2023版)
|
2月前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
2月前
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
401 2
|
2月前
|
存储 NoSQL 关系型数据库
NoSQL 数据库的优缺点?
NoSQL 数据库的优缺点?
85 4
|
2月前
|
ARouter 测试技术 API
Android经典面试题之组件化原理、优缺点、实现方法?
本文介绍了组件化在Android开发中的应用,详细阐述了其原理、优缺点及实现方式,包括模块化、接口编程、依赖注入、路由机制等内容,并提供了具体代码示例。
46 2
|
3月前
|
缓存 NoSQL Redis
一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
这篇文章是关于Java面试中可能会遇到的五个问题,包括MySQL索引类型及其对数据库性能的影响、Redis的RDB和AOF持久化机制、Redis的过期键删除策略、Redis的单线程模型为何高效,以及缓存雪崩、缓存穿透和缓存击穿的概念及其解决方案。
|
3月前
|
前端开发 Java 数据库连接
一天十道Java面试题----第五天(spring的事务传播机制------>mybatis的优缺点)
这篇文章总结了Java面试中的十个问题,包括Spring事务传播机制、Spring事务失效条件、Bean自动装配方式、Spring、Spring MVC和Spring Boot的区别、Spring MVC的工作流程和主要组件、Spring Boot的自动配置原理和Starter概念、嵌入式服务器的使用原因,以及MyBatis的优缺点。
|
3月前
|
机器学习/深度学习 算法
【机器学习】简单解释贝叶斯公式和朴素贝叶斯分类?(面试回答)
简要解释了贝叶斯公式及其在朴素贝叶斯分类算法中的应用,包括算法的基本原理和步骤。
76 1
|
4月前
|
SQL 存储 Oracle
常用数据库优缺点比较
【7月更文挑战第23天】常用数据库优缺点比较
385 11