当前位置: 代码迷 >> 综合 >> 【NoSQL】初试NoSQL 以及关系型数据库的比较
  详细解决方案

【NoSQL】初试NoSQL 以及关系型数据库的比较

热度:22   发布时间:2024-01-10 19:32:13.0
NoSQL

Not Only SQL

1、特点
  1. 灵活的可扩展性
  2. 灵活的数据模型
  3. 可以和云计算紧密结合
2、关系型数据库面临的问题 web 2.0

难以满足海量的数据管理

难以满足数据的高并发的需求

难以满足高扩展性高可用性的需求。

数据分析—高吞吐 Hadoop

在线业务—低延时 MongoDB Redis


关心型数据库的关键特性:包括事务机制 和 高效的查询机制。但是Web2.0时代不太需要:

1. 不要求严格的数据事物
2. 不要求严格的读写实时性
3. 通常不包含大量的复杂的SQL查询。(去结构化,存储空间 来换取更好的查询性能。)

3、RDBMS 和 NoSQL之间的比较
关系型数据库 NoSQL数据库
优点 1. 有关系代数作为理论基础 2.支持事务ACID 3. 借助索引机制可以实现高效的数据查询 1. 可以支持超大规模的数据存储 2. 具有强大的横向扩展能力。
缺点 1. 可扩展性较差 2. 无法支持海量的数据存储 1. 缺乏数学理论基础 2. 复杂的查询性能不高 3. 不能实现事务的强一致性 数据的完整性

关系型数据库 和 NoSQL之间是 无法相互取代的

使用场景:

  • NoSQL 适用于 数据分析
  • 关系型数据(MySQL之类的):适用于关键的业务系统。诸如电信 和 银行
4、NoSQL的类型

主要是有四大类型 键值数据库 文档数据库 图形数据库 列族数据库
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

5、类型对比
数据库 类型 适用场景 不适用 优缺点
Redis (K-Y) K: 一个字符串。Y: 可以是 整型、字符、列表、数组、集合等。 频繁的读写,简单的数据模型应用。内容缓存,会话,配置文件,参数,购物车。用户数据信息的移动应用 数据之间的关系,事务支持。不是通过键查询 扩展性好,大量读写操作时性能高,无法储存结构化信息,条件查询效率较低。
HBase,BigTable 列族 分布式数据存储与管理,拥有动态字段的应用程序。 需要ACID事务支持的情形 查找速度快,可扩展性强,容易进行分布式扩展。功能较少,不太能支持事务一致性。
MongoDB 键值,值时版本化的文档 储存,索引并管理面向文档的数据或者类似的半结构化的数据。 在不同文档上添加事务。因为文档数据库并不支持文档间的事务。 高并发的性能好。复杂度低,数据结构灵活。但是缺乏统一的查询语法。
Neo4J GraphDB 图结构 社交网络,模式识别,依赖分析,推荐系统以及路径寻找 支持复杂的图形计算,构建复杂的关系图谱。复杂性高,只能支持一定的数据规模

MySql:出现的年代较早,时新兴的互联网使用的最多的数据库

MongoDB: 可以提供更加灵活的数据模型,异步交互,地理位置索引等。

HBase: 是依赖Hadoop的生态环境的,可以有很好的扩展性

`: 可以提供更加灵活的数据模型,异步交互,地理位置索引等。

HBase: 是依赖Hadoop的生态环境的,可以有很好的扩展性

Redis:是键值存储的代表,功能简单,可以提供随机数据储存。伸缩性很好。