您的位置:首页 > 数据库

从关系型数据库到非关系型数据库

2016-09-07 18:08 225 查看
http://blog.csdn.net/robinjwong/article/details/18502195/

要点:

1.关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织


2.关系型数据库瓶颈

关系型数据库目前的缺陷
①:高并发读写需求
=》 硬盘I/O是一个瓶颈
②:海量数据高效率读写 =》 在一个包含海量数据的表中查询,效率是非常低的
③:扩展性 =》 不能简单的通过更多硬件和服务来增加负载能力

关系型数据库,WEB不需要的性质:
①:一致性
②:读写实时性
③:多表联查 =》 一个表中会给每行配一样多的数据,即使不需要,也要默认值

3.非关系型数据库提出另一种理念,例如,以键值对存储,且结构不固定,每行可以有不一样的字段

优缺点:不需要对多表进行关联查询,仅由id取value,但非关系型数据库也不能够提供像SQL所提供的where这种对于字段属性值情况的查询。适合存储一些较为简单的数据,对于需要进行较复杂查询的数据,SQL数据库显的更为合适。

4.关系型数据库  V.S.  非关系型数据库

关系型数据库的最大特点就是事务的一致性:传统的关系型数据库读写操作都是事务的,具有ACID的特点,这个特性使得关系型数据库可以用于几乎所有对一致性有要求的系统中,如典型的银行系统。

在网页应用中,尤其是SNS应用中,一致性却不是显得那么重要,用户A看到的内容和用户B看到同一用户C内容更新不一致是可以容忍。反而关系型数据库为了维护事务的一致性,使得读写能力比较差,是不能容忍的。

数据的持久存储,尤其是海量数据的持久存储,还是需要一种关系数据库这员老将


5. 非关系型数据库分类

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

key-value数据库的主要特点即使具有极高的并发读写性能,Redis就是这类的代表

面向海量数据访问的面向文档数据库:

这类数据库的特点是,可以在海量的数据中快速的查询数据,典型代表为MongoDB

面向可扩展性的分布式数据库:

这类数据库想解决的问题就是传统数据库存在可扩展性上的缺陷,这类数据库可以适应数据量的增加以及数据结构的变化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: