3分钟了解Cloudant NoSQL DB之基本概念

上一篇文章为大家介绍了Cloudant NoSQL DB的数据存储结构,今天将带大家了解下数据库分区,数据库基本操作以及存储文档的基本属性。

数据库分区

回顾一下上一篇讲到的文档存储结构,一个数据库中的数据物理上被分成多个分片存储,那么分片数据存储有什么规律呢?

IBM Cloud | 3分钟了解Cloudant NoSQL DB之基本概念

数据存储结构

分片(Shard)是物理的,而分区(Partition)是逻辑的,但是分区对于分片影响很大。在没有引入分区以前,文档被随机分配到某一个分片当中,而使用分区之后,相同分区的文档就被存储在同一个分片或相邻的分片中。

在使用分区后,文档存储变得有规律,在数据操作时也会大大提高效率,节省成本。

文档基本属性

_id:对于无分区数据库,_id是一串字母或数字组成的字符串,不能为空且必须唯一;对于分区数据库,_id由Partition名称和唯一ID组成,格式如下:{Partition Name}:{ID}.

可以把_id理解为关系数据库中的主键,当需要把关系数据表向Cloudant数据库迁移时,就可以把主键作为_id从而保证唯一性。

_rev:用于指示文档当前版本,在进行文档更新操作时,_rev不能为空。当文档更新或创建成功后会得到新的_rev用于之后的操作。

IBM Cloud | 3分钟了解Cloudant NoSQL DB之基本概念

文档示例

数据库基本操作

Cloudant NoSQL DB基本操作主要分为Write,Read,Global Query三类。Write无需解释,就是指文档的更新,创建等操作。Read和Global Query都是对数据库进行读操作,主要的区别在于读操作是否使用了分区。

Read操作是指使用了分区的读操作,通过前面的介绍,我们已经知道使用分区能够提升性能,减少内部操作的消耗,因此官方建议使用分区。

Global Query是指在无分区的情况下对数据库进行的读操作,由于此时文档被随机分布在分片中,因此在读操作过程中需要所有分片的参与,相比于有分区操作性能要差一些。

IBM Cloud | 3分钟了解Cloudant NoSQL DB之基本概念

操作监控面板

Bulk操作

bulk可以实现批量文档操作,比如文档批量插入,批量更新等操作。通过使用bulk可以大大降低数据库操作次数,从而节省服务成本。

有时候单个文档的删除无法满足业务需求,为了减少数据库操作可以通过bulk实现文档批量删除。这里有个小窍门,就是使用_deleted属性来标记文档删除,_deleted为Boolean类型,只要在bulk请求时设置文档中_deleted字段为true就意味着对文档的删除。

结语

刚刚带大家了解了Cloudant NoSQL DB的数据库分区,数据库操作以及文档基本属性,下一篇文章将介绍如何在Java程序中集成Cloudant NoSQL DB,欢迎持续关注。

IBM Cloud专题历史文章

想要试用和了解更多关于Cloudant NoSQL DB内容的同学可以点击下方【了解更多】开启IBM Cloud免费体验之旅。


分享到:


相關文章: