NoSQL是区别于传统关系数据库的数据库管理系统的总称。NoSQL数据库的产生是为了解决数据量大和多种数据类型带来的挑战,尤其是大数据应用问题。因为NoSQL数据库去掉了关系数据模型的特点,数据之间没有关系,易于扩展。此外,得益于NoSQL数据库的无关数据模型,数据库的结构变得更加简单,因此更容易支持海量数据存储和高并发读写,性能非常出色。
NoSQL数据库主要包括五种类型:键值数据库、图形数据库、时间序列数据库、列族数据库和面向文档的数据库。
数据库键值键值 键值数据库使用简单的键值方法存储数据,具有很高的容错性和可扩展性。这种数据库主要使用一个散列表,它有一个特定的键和一个指向特定数据的指针。IT系统的键/值模型的优势在于其简单性和易于部署。在不涉及太多数据关系业务的场景下,使用键值存储可以有效减少读写磁盘的次数,比关系存储有更好的读写性能。常见的键值数据库有:TcaplusDB、abase、Todis等。
图形数据库图形 数据库是以点和边为存储单元,以图形数据的高效存储和查询为设计原则的数据管理系统。与其他具有行和列以及刚性结构的SQL数据库不同,图形数据库使用灵活的图形模型,并且可以扩展到多个服务器。图数据库将数据之间的关联作为数据的一部分进行存储,并且可以在关联中添加标签、方向和属性,这使得它在关系查询中与其他类型的数据库相比具有很大的性能优势。常见的图数据库有TGDB、AlibabaGDB、StellarDB等。
时间系列数据库 时间序列数据库主要用于处理带有时间标签的数据(按时间顺序变化,即时间序列化)。时间序列数据库可以有效地处理庞大而统一的数据,其独特的属性意味着它可以在存储空间和性能上提供比一般数据库更显著的改进。例如,基于unity的特殊压缩算法可以提供比常规压缩算法更好的数据处理效率;重复或过时的数据可以定期删除,以节省空间;特殊数据库索引也可以提高查询性能。常见的时间序列数据库有TDengine、DolphinDB、IoTDB等。
列族数据库 列数据库与列数据库的不同之处在于键仍然存在,但它们的特点是指向多个列,按列族排列,即融合行键值和列形成统一的关键字,值可以分成多个列簇,这样每个列簇代表一个数据映射表,通常用于处理存储在分布式存储中的海量数据。常见的列聚集数据库有:CloudTable、Hyperbase、GeminiDB等。
面向数据库文档 该数据库受Lotus Notes办公软件的启发,用于管理文档。在文档数据库中,文档是信息处理的基本单位,文档相当于关系数据库中的一条记录。这种类型的数据模型是版本化文档,半结构化文档以特定的格式存储,比如JSON。数据库可以看作是键值数据库的升级版,允许键值之间嵌套,在处理网页等复杂数据时,其查询效率更高。