麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
717
2023-05-27
解读NoSQL文档数据库:工作原理、优缺点
NoSQL数据库是大多数日常互联网使用的基础。从Twiiter使用FlockDB到亚马逊的***,我们每天都会遇到NoSQL。
作为市面上流行的数据库模型之一,文档存储的工作方式与键值(key-value)非常相似,因为文档是以信息的特定键来存储的。有意思的是,Windows注册表就是文档存储数据库,因此它是很强大的数据模型。
文档数据库的工作原理
表面上,文档数据库背后的想法是,您可以在文档中存储任何类型的信息。这意味着您可以混合搭配所需的任何类型的数据,不必担心数据库无法解析它。实际上,大多数文档数据库仍往往使用某种形式的模式、文件格式和某种预定义结构。
相比关系型SQL数据库,文档存储没有与SQL同样的缺点和限制。这意味着处理手头的信息要容易得多,查询执行也要容易得多。出人意料的是,您在SQL数据库中可以执行的同一种操作也可以在文档存储数据库中执行,比如删除、添加和查询。
如前所述,每个文档都需要某种类型的键,这是通过唯一ID提供给它的。在任何过程中提供唯一ID时,直接读取和处理文档本身中的信息,而不是逐列取出信息。
说到文档数据库(以及所有NoSQL数据库),要注意的一点是,它们的安全性往往比SQL数据库差一点。因此,您需要考虑数据库安全,而加强安全的一种方法是使用SAST。 SAST即静态应用程序安全测试,直接查看源代码以查找漏洞。您还可以运行DAST(动态版本),同样有助于避免NoSQL注入攻击。
文档数据库的优点
文档存储的最大优点可能是,所有内容都在一个数据库当中,而不是信息分散在多个链接数据库中。因此,与SQL数据库相比,您可以获得更好的性能,只要不使用关系型流程。链接文档会大大增添复杂性,使用起来令人沮丧,引用在文档存储数据库中其实效果不好。
不像每个信息都有一个字段的传统数据库,即使没有任何内容,文档存储数据库也更加灵活。实际上,不需要文档有一致性,您就可以存储大量数据,基本上没有问题。
同样,由于文档存储更灵活,因此集成新数据根本不是问题。与必须将任何新类型的信息添加到所有数据集的关系数据库相比,文档存储数据库只需要添加到几个数据集即可。
更具体地说,由于可以在不造成任何停机的情况下修改模式,或者由于您将来可能不知道用户需求,因此文档存储数据库非常适合这些应用:
大型电子商务平台(比如亚马逊)博客网站(比如Twitter)内容管理系统(WordPress和Windows注册表)分析平台
文件数据库的缺点
虽然大多数文档存储数据库已存在了一段时间,但除了小圈子和数据库自己的维基或论坛外,仍没有太多的说明文档。加上有太多的文档存储数据库可供选择,有时不深入研究,很难找到特定的信息。
此外,由于缺乏熟悉性而导致配置错误,或由于使用单个节点,数据有可能丢失。另一个问题是,文档存储数据库其实不适合运行多个复杂的操作或复杂的查询。
最后,文档数据库(和所有NoSQL数据库)快速发展,这个事实多少成了一把双刃剑。与SQL相对完善、不会有太大变化相比,如果您没有热情或兴趣,NoSQL可能很难跟上步伐。
流行文档数据库的例子
***:作为主要的NoSQL数据库引擎之一,它不仅应用广泛,还使用类似JSON的机制,有自己的查询语言。这篇指南全面介绍了***的基础知识。
Elasticsearch:基于文档存储数据模型的搜索引擎。它用于搜索数据库并建立索引,学习起来也非常简单。
CouchDB:与Ubuntu和Facebook一起使用,它使用Javascript,用Erlang编写。
BaseX:一种基于XML的轻量级DBM,开源,使用Java。
结论
文档存储数据模型大受欢迎、广泛使用有充分理由,这归因其灵活性。随着数据库应用变得越来越复杂,能够轻松添加数据集或扩大规模意味着整体麻烦更少、项目更易于处理。
文档存储还有助于数据分析,因为公司可以轻松存储众多信息供日后使用。由于几个文档存储数据库在添加图形接口(比如***),因此可以更轻松地查找原本可能不明显的信息和模式。
原文标题:Understanding NoSQL Document Databases,作者:Alex Williams
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。