导读:数据库通常用来存储结构化数据,这些数据有明确定义的格式。在过去的几年中,已经发布了许多数据库,可供我们选择的数据库每年都在增长。这些数据库中有许多是为特定类型的数据模型和工作任务设计的。其中一些支持多种模型,通常被归类为多模型数据库。
了解数据库的各种分类有助于你在设计应用时选择正确的数据库。
作者:Boris Scholl, Trent Swanson, Peter Jausovec
来源:大数据DT(ID:hzdashuju)
01 键值数据库
通常,只需要使用主键甚至是部分键来检索应用程序的数据。键/值数据库可以被看作一个非常大的哈希表,该表在唯一的键下存储了一些值。存储的值可以通过键或者部分键高效地检索到。因为该值对于数据库是不透明的,所以如果需要按值来查找一条记录的话就需要逐条扫描。
键/值数据库中的键可以包含多个元素,甚至可以排序以提高查询效率。一些键/值数据库允许使用键的前缀进行查找,从而可以使用复合键。如果数据可以通过一些简单的键嵌套查询,那键/值数据库会是个不错的选择。
例如,我们将客户xyz的订单存储在键/值数据库中,可以使用客户ID作为键的前缀,结合订单号组成键“xyz-1001”来存储订单。可以使用整个键来检索特定的订单,也可以使用“xyz”前缀检索客户xyz的所有订单。
说明:键/值数据库通常是比较便宜的,且具有高度可伸缩性的数据存储。键/值数据库能够根据键对数据进行分区甚至重分区。使用键/值数据库时,选择键很重要,因为这将对数据存储的规模和读写性能产生重大影响。
02 文档数据库
文档数据库和键/值数据库类似,因为它也通过主键存储文档(值)。与键/值数据库不同的是,文档数据库中的文档需要符合某些定义好的结构,而键/值数据库几乎可以存储任意值。这使得文档数据库可以启用诸如维护二级索引的功能以及基于文档查询数据的功能。
通常存