关系型数据库
关系型数据库:mysql、Oracle…
1.数据之间有关联关系
2.数据存储在硬盘的文件上
:增删改查需要对文件进行IO操作,性能较低
非关系型数据库(NoSQL)
非关系型数据库:redis、HBASE…
NoSQL数据库的产生就是为了解决
大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题
。
1.存储的是键值对
:key-value;
//例如:
name:zhangsan
age:23
2.数据之间没有关联关系
3.数据存储在内存中
:速度较高
如果数据量里面的内容非常大,操作关系型数据库比较耗时。如:查询的时候
当经常查询一些不太经常发生变化的数据
,使用缓存思想
解决这个问题,
缓存里有数据的话,就直接返回,没有数据的话,就从数据库查询,再将数据放入缓存,返回数据
NoSQL与关系型数据库的比较
非关系型数据库
优点
-
成本低
:NoSQL是开源软件,相较于关系型数据库价格较便宜 -
查询速度快
:NoSQL数据存储在缓存中,关系型数据库存储在硬盘中,不需要经过SQL层的解析,所以性能非常高,一次NoSQL查询速度高 -
存储数据的格式为键值对
:nosql键值((Key-Value)存储数据库)存储格式为key,value形式、文档形式、图片形式等等,可以存储基础类型以及对象或者是集合等各种格式
,而数据库则只支持基础类型
-
扩展性好
:NoSQL因为是储存键值对,所以数据之间没有耦合性,非常容易水平扩展
。关系型数据库的扩展难,因为有多表查询机制
。
缺点
-
维护相对比较困难
:维护的工具和资料有限 - 不提供对sql的支持,
没有一个统一的标准
,有
一定的学习和使用成本
-
不提供
关系型数据库对事务的处理
。
关系型数据库
优点
- 可以
进行多表操作
:可以使用SQL语句可以完成在一个表以及多个表之间做非常复杂的数据查询。 -
事务支持,可以提高安全性
,使得对于安全性能很高的数据访问要求得以实现。
二者关系
- 关系型数据库与NoSQL数据库并非对立而是互补的关系,即
通常情况下使用关系型数据库,在适合使用NoSQL的时候使用NoSQL数据库
- 一般会
将数据存储在关系型数据库中
,在nosql数据库中备份
存储关系型数据库的数据
二者区别
1.数据存储方式不同
(主要区别)。
关系型数据
天然就是表格式
的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,进行多表操作
,也很容易提取数据
。
非关系型数据库
,不适合存储在数据表的行和列中
,而是大块组合
在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构。你的数据及其特性是选择数据存储和提取方式的首要影响因素。
2.扩展方式不同
(最大的差别)。
支持更多并发量
,SQL
(关系型)数据库是纵向扩展
,也就是说提高处理能力
,使用速度更快速的计算机,这样处理相同的数据集就更快了。虽然SQL数据库有很大扩展空间,但最终肯定会达到纵向扩展的上限
。
NoSQL数据库
是横向扩展
的。非关系型数据存储天然就是分布式
的,NoSQL数据库的扩展可以通过
给资源池添加更多普通的数据库服务器
(节点)来分担负载
。
3.对事务性的支持不同
。
SQL数据库支持对事务原子性细粒度控制,并且易于回滚事务。
NoSQL数据库也可以使用事务操作,但稳定性方面没法和关系型数据库比较,所以它们
真正的价值是在操作的扩展性和大数据量处理方面
。