NoSQL、NewSQL、OldSQL

数据库的选择简单而复杂。简单指的是对于大部分互联网公司MySQL或者mongoDB之类的加上缓存就够用了。复杂指的是大家对大数据的预期,导致在数据库技术上的选型颇为难。今天就对比下现在流行的几种SQL之间的区别。

NoSQL

之前在大学创业时做的是一款移动端视频交友APP,在数据库的选择上用的就是mongoDB+redis缓存的底层数据管理架构。这也是我第一次接触NoSQL。当时使用的感觉是方便简单,足够快。那么我们来看下,什么是NoSQL。

NoSQL并无明确的定义,泛指非关系型数据库。NoSQL数据库们具备一些共同的特征:不需要预定义模式;无共享架构,弹性可扩展;可分区;异步复制;最终一致性(弱一致性)。下面列举四类数据库进行比较。

四类数据库比较

其中,KV数据库和文档型数据库是比较相似的,不同的是,文档型数据库能够了解value的内容。文档型数据库将常用的数据存储在同一个文档中,而不是存在表中。如果一个应用程序需要存储不同的属性以及大量的数据,那么文档型数据库会是一个很好的选择(这也是我们以前为什么选mongoDB的原因)。而KV数据库大多用来当缓存。

NewSQL

NewSQL兼具传统数据库的ACID模型和NoSQL所需的高扩展性。NewSQL一直在尝试解决的问题是摆脱人工运维的束缚,在存储层实现真正的自增长自维护,同时用户可以以最自然大的编程接口访问和存储数据。当实现这点后,业务才可以摆脱存储的介质和容量的限制,而专注于逻辑的实现。目前NewSQL比较典型的代表是FoundationDB和VoltDB。

数据库场景对比

在数据库的选型上,始终要关注3个关键词:数据量、实时性、一致性。NoSQL就是牺牲强一致性来增强其扩展性的。下面用一张图来看各种数据库的对比情况。

数据库场景对比

数据价值密度:数据价值密度的高低与数据总量的大小成反比,即数据价值密度越高数据总量越小,数据价值密度越低数据总量越大。

 
多元化架构

在大数据的推动下,数据库的架构逐渐走向多元化,已经从一种架构支持多类应用转变成多种架构支持多类应用。

End(^-^)

如果有需要文中原图,或者有什么需要交流的问题,可以加微信~

来源:https://www.jianshu.com/p/e99d710355e5