1.(译)NoSQL与SQL数据库对比

Posted PacosonSWJTU

tags:

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

【README】

1.本文翻译自: NoSQL Vs SQL Databases | MongoDB

2.NoSQL指的是不止sql(not only sql);NoSQL数据库是2000年代末开发的,重点是扩展,快速查询,允许频繁变更,让编程更简单;

3.关系型数据库是1970年代开发的重点的是减少数据重复,因为存储成本高于开发者时间。SQL数据库往往具有严格,复杂的表格模式,通常要求高成本的垂直扩展。(如迁移到一台性能更好的服务器)


【1】SQL与NoSQL区别

SQL 与 NOSQL 间的区别
区别条目SQL数据库NoSQL数据库
数据存储模型固定行列的表格document:json文档;
key-value:键值对;
wide-column:带有行与动态列的表格;
图:节点与边
发展历史1970年代开始开发,关注的是减少数据重复2000年代末开始开发,关注的是扩展,允许快速变更
例子oracle,mysqldocument:MongoDB 和 CouchDB;
key-value:redis 和 DynamoDB;
wide-column:Cassandra 和 HBase;
graph:Neo4j 和 Amazon Neptune
主要用途通用document:通用;
key-value:大量数据的简单查询;
wide-column:大量数据的预定义查询;
graph:分析和遍历连接数据的关系;
模式严格灵活的 
扩展性垂直扩展(使用大型服务器向上扩展)(难度大,成本高)横向扩展(跨商品服务器横向扩展)
(难度小,成本低)
ACID事务支持支持大多数都不支持多记录的ACID事务。
然而MongoDB可以支持ACID事务;
连表通常需要通常不需要
数据到对象的映射要求对象关系映射-ORM许多NoSQL数据库不需要对象关系映射;
MongoDB文档直接映射到大多数流行编程语言的数据结构。


 【2】NOSQL数据库的优点

相比于关系型数据库,nosql数据库提供了很多优点。NoSQL数据库

  • 拥有灵活的数据模型;
  • 支持横向扩展;
  • 非常快速的查询性能;易于开发者上手;

1)优点1:灵活的数据模型

NoSQL允许你按需把改变应用到数据库。你可以快速迭代和持续聚合新的特性,更快为用户提供数据服务;

2)优点2:横向扩展

当超出服务器性能时,大多数SQL数据库都要求你纵向扩展(迁移到更大的数据库,迁移成本非常昂贵)。

相反,大多数NoSQL数据库允许你横向扩展,意味着你可以随时按需增加偏移的商用服务器;

3)优点3:快速查询

NoSQL数据库中的查询能够比SQL数据库要快,为什么?

3.1)SQL数据库:因为SQL数据库的数据是规范化的,因此单个对象或整体的查询需要你连接多个表的数据。随着表的增长,连表的成本非常高昂;

3.2)NoSQL数据库:然而,NoSQL数据库中的数据通常以一种查询优化的方式进行存储

  • 使用MongoDB的经验法则,把需要一起访问的数据存储在一起。
  • 查询通常不需要连表,因此查询更加快速;

4)优点4-开发人员易于上手

一些NoSQL数据库如MongoDB会把他们的数据结构映射到那些流行的编程语言;

  • 这种映射允许开发者以他们在代码中使用的相同方式存储数据;
  • 这种映射允许开发者写更少的代码,使得更加快速开发和更少缺陷;

【3】NoSQL数据库的缺点

1)缺点1:NoSQL不支持事务:

  • NoSQL操作多个文档时不支持ACID 事务特性(原子性,一致性,隔离性,持久性);
  • 使用合适的模型设计,单条记录的原子性是可以满足大多数应用的;
  • 为了解决不支持ACID事务特性的问题:mondoDB 在4.0版本开始支持多文档的ACID事务,并在4.2版本扩展到支持跨分片集群;

2)缺点2:NoSQL的存储空间比SQL数据库要大。

  • 因为NoSQL数据库的数据模型通常是根据查询而优化过的,并没有减少数据重复。
  • 因此存储相同业务数据,NoSQL数据库比SQL数据库占用的存储空间要大;存储介质非常便宜以至于这是一个很小的缺点;
  • 此外NoSQL数据库支持数据压缩以减少存储空间。

补充: 存储空间包括 磁盘空间,内存空间;

以上是关于1.(译)NoSQL与SQL数据库对比的主要内容,如果未能解决你的问题,请参考以下文章

关系型数据库与NoSQL的对比

从MySQL和MongoDB的对比,看SQL与NoSQL的较量

8 种 NoSQL 数据库系统对比

(DDIA)SQL与NoSQL数据模型简介

什么是NOSQL(SQL和NOSQL对比图文详解)

8种Nosql数据库系统对比