第一章 文档数据库 (DocDB) 简介

DocDB 非常灵活,适合动态数据。
它与SQL兼容,但又有不同。
它以JSON格式存储,易于开发。

项目:2 02 0年上线的电商点餐系统,使用DocDB存储用户行为数据。

我还在测试这个,但我的经验是DocDB适合处理非结构化数据。

要创建数据库,使用%CreateDatabase(),很简单。

例如:%CreateDatabase("OrderDB")
管理数据库,使用%SYSTEM.DocDB,很方便。

自己掂量一下。

文档型数据库有什么优势?

说白了,文档数据库最大的优点就是灵活、易于扩展。
我们先来说说最重要的事情。
在我们去年运行的一个电子商务项目中,用户评论和产品描述是半结构化的。
使用文档数据库直接访问比关系数据库快5 0%以上,而且不需要提前设计表结构。
当需求发生变化时,这不是很方便。
还有一个问题是,在物联网场景下,每个设备上报的数据格式是不同的。
如果将其保存为文档格式,则无需进行复杂的 JOIN。
只能通过设备ID来查看。
很多人不重视这一点。
还有一个重要的细节,比如MongoDB的分片机制。
去年双十一期间,我们的项目每天的写入量为3 000 QPS,只能通过1 0台服务器自动共享来维持。
用行话来说,这称为雪崩效应。
事实上,前面的一点耽误就毁掉了后面的一切。

我最初认为文档数据库不适合事务场景。
后来了解到Couchbase增加了多文档事务,可以处理多种情况。
等等,还有一件事。
文档数据库在微服务中特别受欢迎,因为每个服务包含独立的数据,不需要执行复杂的跨表操作。
但需要注意的是,如果数据量不大如果查询结构是固定的,关系数据库可以更轻松。
不要为了灵活性而将简单的问题复杂化。
我认为值得一试,但这取决于场景。

什么是多媒体文档数据库

全息数据库是一种无形的数据库。

记录字段的长度是可变的。

节省存储空间。

该字段可以重复。

使用连接字段关联数据。
逆向技术用于快速文档检索。

可以交换数据。
许多输出格式。
能够连接到关系数据库。

广泛使用。

文档数据库和传统关系数据库有什么区别?

我记得我帮一个朋友搬家,他有一本老式相册,里面的照片排列得乱七八糟。
有的按时间放置,有的按人放置,有的干脆直接在封面上刊登。
他告诉我,以前的照片不多,所以我可以把它们放在任何地方。
如今,照片太多了,要找到一张特定的合影要花很长时间。
关系数据库就像这个相册。
数据分散在不同的表中。
在将信息放在一起之前,您必须知道表如何链接以及字段是什么。
文档数据库类似于电子相册。
每个图像(每个文档)都包含所有信息。
您只需找到您想要的图像即可。
2 008 年左右,我第一次接触MongoDB。
当时她就觉得自己储存的文件五花八门。
有些有“标签”字段,有些有“描述”。
根本没有任何规则,但是查询它们却很容易。
等等,还有别的事。
文档数据库的可扩展性似乎更好。
例如,淘宝等大量产品,使用文档数据库可能比关系数据库更容易分担压力。
不过关系数据库的强一致性在金融领域还是很有用的。
例如,银行转账不可能每秒都出错。
我突然想到,半结构化模型看起来很灵活,但是如果数据质量参差不齐,是不是很容易搞乱呢?