关系数据库和NOSQL比较

Posted 一号路人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系数据库和NOSQL比较相关的知识,希望对你有一定的参考价值。

关系数据库 NOSQL

功能:
       NOSQL
           功能简单
           基本只支持主键查询,有的NOSQL支持非主键查询(不过非主键查询时,其性能也很慢),很少有NOSQL支持二级索引
           不支持关联查询,如果有复杂关联查询的需求,NOSQL无法支持
           不支持ACID,仅仅支持单记录级的原子操作,如果有高一致性要求的场景,NOSQL很难支持
           no schema 多条记录可以有不同数量的字段,存储方便
           自身可以分片 扩容比较方便
       关系数据库
           功能复杂
           支持主键查询和其他字段查询(建立二级索引)
           支持关联查询
           支持ACID
           有schema约束
           自身无分片功能
性能:
       NOSQL
          性能比较高
       关系数据库
          性能较低,因为其要保证事务一致性要做很多检查、加锁等操作,所以很慢,而且关联查询也很复杂,导致效率较低,经常有查询业务不走索引,查询速度也很慢,主要还是因为功能复杂导致的性能较低

总结
选择NOSQL需要下面2个必要条件:
1.不需要ACID
2.不需要关联查询

如果需要以上两个功能,无法选择NOSQL

下面是选择NOSQL的充分条件:
1表结构不固定 【因为关系数据库表结构是固定的,这个是NOSQL唯一比关系数据库好的能力点(笔者个人认知,因为NOSQL的高性能是牺牲一致性等功能为代价的)】



























以上是关于关系数据库和NOSQL比较的主要内容,如果未能解决你的问题,请参考以下文章

大数据技术原理与应用实验3——NoSQL和关系数据库的操作比较

NoSQL与关系数据库的比较

全面梳理关系型数据库和NoSQL的使用情景

nosql的介绍以及和关系型数据库的区别

阿里P8架构师谈:NoSQL和SQL的区别,NoSQL的使用场景和选型比较

阿里P8架构师谈:NoSQL和SQL的区别,NoSQL的使用场景和选型比较