关于nosql:学了那么多NoSQL数据库NoSQL究竟是啥

42次阅读

共计 2162 个字符,预计需要花费 6 分钟才能阅读完成。

文章内容:学了那么多 NoSQL 数据库 NoSQL 到底是啥

作者: 优极限

NoSQL 简史

NoSQL 一词最早呈现于 1998 年,是 Carlo Strozzi 开发的一个轻量、开源、不提供 SQL 性能的关系数据库。

2009 年,Last.fm 的 Johan Oskarsson 发动了一次对于分布式开源数据库的探讨,来自 Rackspace 的 Eric Evans 再次提出了 NoSQL 的概念,这时的 NoSQL 次要指非关系型、分布式、不提供 ACID 的数据库设计模式。

2009 年在亚特兰大举办的 ”no:sql(east)” 讨论会是一个里程碑,其口号是 ”select fun, profit from real_world where relational=false”。因而,对 NoSQL 最广泛的解释是 ” 非关联型的 ”,强调 Key-Value Stores 和文档数据库的长处,而不是单纯的拥护 RDBMS。

什么是 NoSQL

NoSQL(Not Only SQL),意思是 ” 不仅仅是 SQL“,指的是非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL 用于超大规模数据的存储。这些类型的数据存储不须要固定的模式,无需多余操作就能够横向扩大。

为什么应用 NoSQL

随着互联网的飞速发展与遍及,网民上网冲浪时所产生数据也逐日增多,从 GB 到 TB 到 PB。这些数据有很大一部分都是由关系型数据库管理系统(RDBMS)来进行解决的。

因为关系型数据库的范式束缚、事务个性、磁盘 IO 等特点,若服务器应用关系型数据库,当有大量数据产生时,传统的关系型数据库曾经无奈满足疾速查问与插入数据的需要。NoSQL 的呈现解决了这一危机。它通过升高数据的安全性,缩小对事务的反对,缩小对简单查问的反对,获取性能上的晋升。然而,在某些特定场景下 NoSQL 依然不是最佳人选,比方一些相对要有事务与平安指标的场景。

NoSQL 是一项全新的数据库革命性静止,晚期就有人提出,倒退至 2009 年趋势越发低落。NoSQL 的拥护者们提倡使用非关系型的数据存储,绝对于铺天盖地的关系型数据库使用,这一概念无疑是一种全新的思维的注入。

RDBMS vs. NoSQL

常见的数据库管理系统

依据 DB-Engines:https://db-engines.com/en/ran… 的排行,本文截取了排行榜 Top 50 如下图所示。DB-Engines 排名依据数据库管理系统的受欢迎水平对其进行排名。该排名每月更新一次。

NoSQL 数据库四大家族

键值(Key-Value)存储

特点 :键值数据库就像传统语言中应用的哈希表。通过 Key 增加、查问或者删除数据。

长处 :查问速度快。

毛病 :数据无结构化,通常只被当作字符串或者二进制数据存储。

利用场景 :内容缓存、用户信息比方会话、配置信息、购物车等,次要用于解决大量数据的高拜访负载。

NoSQL 代表 :Redis、Memcached…

文档(Document-Oriented)存储

特点 :文档数据库将数据以文档的模式贮存,相似 JSON,是一系列数据项的汇合。每个数据项都有一个名称与对应的值,值既能够是简略的数据类型,如字符串、数字和日期等;也能够是简单的类型,如有序列表和关联对象。

长处 :数据结构要求不严格,表构造可变,不须要像关系型数据库一样须要事后定义表构造。

毛病 :查问性能不高,不足对立的查问语法。

利用场景 :日志、Web 利用等。

NoSQL 代表 :MongoDB、CouchDB…

列(Wide Column Store/Column-Family)存储

特点 :列存储数据库将数据贮存在列族(Column Family)中,将多个列聚合成一个列族,键依然存在,然而它们的特点是指向了多个列。举个例子,如果咱们有一个 Person 类,咱们通常会一起查问他们的姓名和年龄而不是薪资。这种状况下,姓名和年龄就会被放入一个列族中,而薪资则在另一个列族中。

长处 :列存储查找速度快,可扩展性强,更容易进行分布式扩大,实用于分布式的文件系统,应答分布式存储的海量数据。

毛病 :查问性能不高,不足对立的查问语法。

利用场景 :日志、分布式的文件系统 (对象存储)、举荐画像、时空数据、音讯 / 订单等。

NoSQL 代表 :Cassandra、HBase…

图形(Graph-Oriented)存储

特点 :图形数据库容许咱们将数据以图的形式贮存。

长处 :图形相干算法。比方最短门路寻址,N 度关系查找等。

毛病 :很多时候须要对整个图做计算能力得出须要的信息,分布式的集群计划不好做,解决超级节点乏力,没有分片存储机制,国内社区不沉闷。

利用场景 :社交网络,举荐零碎等。专一于构建关系图谱。

NoSQL 代表 :Neo4j、Infinite Graph…

NoSQL 的优缺点

长处

  • 高可扩展性
  • 没有标准化
  • 分布式计算
  • 无限的查问性能(到目前为止)
  • 低成本

毛病

  • 最终统一是不直观的程序
  • 架构的灵活性,半结构化数据
  • 没有简单的关系

总结

NoSQL 数据库在以下几种状况下比拟实用:

  • 数据模型比较简单
  • 须要灵活性更强的 IT 零碎
  • 对数据库性能要求较高
  • 不须要高度的数据一致性
  • 对于给定的 Key,比拟容易映射简单值的环境

感激大家的认同与反对,小编会继续转发《 优极限 》优质文章

正文完
 0