自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解讀NoSQL文檔數(shù)據(jù)庫:工作原理、優(yōu)缺點(diǎn)

譯文
數(shù)據(jù)庫 其他數(shù)據(jù)庫
文檔存儲(chǔ)數(shù)據(jù)庫被認(rèn)為是所有NoSQL數(shù)據(jù)庫類型中最復(fù)雜的。它們采用JSON格式來存儲(chǔ)數(shù)據(jù),而不是采用典型的行和列結(jié)構(gòu)。

【51CTO.com快譯】文檔存儲(chǔ)數(shù)據(jù)庫被認(rèn)為是所有NoSQL數(shù)據(jù)庫類型中最復(fù)雜的。它們采用JSON格式來存儲(chǔ)數(shù)據(jù),而不是采用典型的行和列結(jié)構(gòu)。

NoSQL數(shù)據(jù)庫是大多數(shù)日常互聯(lián)網(wǎng)使用的基礎(chǔ)。從Twiiter使用FlockDB到亞馬遜的DynamoDB,我們每天都會(huì)遇到NoSQL。

作為市面上流行的數(shù)據(jù)庫模型之一,文檔存儲(chǔ)的工作方式與鍵值(key-value)非常相似,因?yàn)槲臋n是以信息的特定鍵來存儲(chǔ)的。有意思的是,Windows注冊(cè)表就是文檔存儲(chǔ)數(shù)據(jù)庫,因此它是很強(qiáng)大的數(shù)據(jù)模型。

文檔數(shù)據(jù)庫的工作原理

表面上,文檔數(shù)據(jù)庫背后的想法是,您可以在文檔中存儲(chǔ)任何類型的信息。這意味著您可以混合搭配所需的任何類型的數(shù)據(jù),不必?fù)?dān)心數(shù)據(jù)庫無法解析它。實(shí)際上,大多數(shù)文檔數(shù)據(jù)庫仍往往使用某種形式的模式、文件格式和某種預(yù)定義結(jié)構(gòu)。

相比關(guān)系型SQL數(shù)據(jù)庫,文檔存儲(chǔ)沒有與SQL同樣的缺點(diǎn)和限制。這意味著處理手頭的信息要容易得多,查詢執(zhí)行也要容易得多。出人意料的是,您在SQL數(shù)據(jù)庫中可以執(zhí)行的同一種操作也可以在文檔存儲(chǔ)數(shù)據(jù)庫中執(zhí)行,比如刪除、添加和查詢。

如前所述,每個(gè)文檔都需要某種類型的鍵,這是通過唯一ID提供給它的。在任何過程中提供唯一ID時(shí),直接讀取和處理文檔本身中的信息,而不是逐列取出信息。

說到文檔數(shù)據(jù)庫(以及所有NoSQL數(shù)據(jù)庫),要注意的一點(diǎn)是,它們的安全性往往比SQL數(shù)據(jù)庫差一點(diǎn)。因此,您需要考慮數(shù)據(jù)庫安全,而加強(qiáng)安全的一種方法是使用SAST。 SAST即靜態(tài)應(yīng)用程序安全測(cè)試,直接查看源代碼以查找漏洞。您還可以運(yùn)行DAST(動(dòng)態(tài)版本),同樣有助于避免NoSQL注入攻擊。

文檔數(shù)據(jù)庫的優(yōu)點(diǎn)

文檔存儲(chǔ)的最大優(yōu)點(diǎn)可能是,所有內(nèi)容都在一個(gè)數(shù)據(jù)庫當(dāng)中,而不是信息分散在多個(gè)鏈接數(shù)據(jù)庫中。因此,與SQL數(shù)據(jù)庫相比,您可以獲得更好的性能,只要不使用關(guān)系型流程。鏈接文檔會(huì)大大增添復(fù)雜性,使用起來令人沮喪,引用在文檔存儲(chǔ)數(shù)據(jù)庫中其實(shí)效果不好。

不像每個(gè)信息都有一個(gè)字段的傳統(tǒng)數(shù)據(jù)庫,即使沒有任何內(nèi)容,文檔存儲(chǔ)數(shù)據(jù)庫也更加靈活。實(shí)際上,不需要文檔有一致性,您就可以存儲(chǔ)大量數(shù)據(jù),基本上沒有問題。

同樣,由于文檔存儲(chǔ)更靈活,因此集成新數(shù)據(jù)根本不是問題。與必須將任何新類型的信息添加到所有數(shù)據(jù)集的關(guān)系數(shù)據(jù)庫相比,文檔存儲(chǔ)數(shù)據(jù)庫只需要添加到幾個(gè)數(shù)據(jù)集即可。

更具體地說,由于可以在不造成任何停機(jī)的情況下修改模式,或者由于您將來可能不知道用戶需求,因此文檔存儲(chǔ)數(shù)據(jù)庫非常適合這些應(yīng)用:

  • 大型電子商務(wù)平臺(tái)(比如亞馬遜)
  • 博客網(wǎng)站(比如Twitter)
  • 內(nèi)容管理系統(tǒng)(WordPress和Windows注冊(cè)表)
  • 分析平臺(tái)

 

文件數(shù)據(jù)庫的缺點(diǎn)

雖然大多數(shù)文檔存儲(chǔ)數(shù)據(jù)庫已存在了一段時(shí)間,但除了小圈子和數(shù)據(jù)庫自己的維基或論壇外,仍沒有太多的說明文檔。加上有太多的文檔存儲(chǔ)數(shù)據(jù)庫可供選擇,有時(shí)不深入研究,很難找到特定的信息。

此外,由于缺乏熟悉性而導(dǎo)致配置錯(cuò)誤,或由于使用單個(gè)節(jié)點(diǎn),數(shù)據(jù)有可能丟失。另一個(gè)問題是,文檔存儲(chǔ)數(shù)據(jù)庫其實(shí)不適合運(yùn)行多個(gè)復(fù)雜的操作或復(fù)雜的查詢。

最后,文檔數(shù)據(jù)庫(和所有NoSQL數(shù)據(jù)庫)快速發(fā)展,這個(gè)事實(shí)多少成了一把雙刃劍。與SQL相對(duì)完善、不會(huì)有太大變化相比,如果您沒有熱情或興趣,NoSQL可能很難跟上步伐。

流行文檔數(shù)據(jù)庫的例子

MongoDB:作為主要的NoSQL數(shù)據(jù)庫引擎之一,它不僅應(yīng)用廣泛,還使用類似JSON的機(jī)制,有自己的查詢語言。這篇指南全面介紹了MongoDB的基礎(chǔ)知識(shí)。

Elasticsearch:基于文檔存儲(chǔ)數(shù)據(jù)模型的搜索引擎。它用于搜索數(shù)據(jù)庫并建立索引,學(xué)習(xí)起來也非常簡(jiǎn)單。

CouchDB:與Ubuntu和Facebook一起使用,它使用Javascript,用Erlang編寫。

BaseX:一種基于XML的輕量級(jí)DBM,開源,使用Java。

結(jié)論

文檔存儲(chǔ)數(shù)據(jù)模型大受歡迎、廣泛使用有充分理由,這歸因其靈活性。隨著數(shù)據(jù)庫應(yīng)用變得越來越復(fù)雜,能夠輕松添加數(shù)據(jù)集或擴(kuò)大規(guī)模意味著整體麻煩更少、項(xiàng)目更易于處理。

文檔存儲(chǔ)還有助于數(shù)據(jù)分析,因?yàn)楣究梢暂p松存儲(chǔ)眾多信息供日后使用。由于幾個(gè)文檔存儲(chǔ)數(shù)據(jù)庫在添加圖形接口(比如MongoDB),因此可以更輕松地查找原本可能不明顯的信息和模式。

原文標(biāo)題:Understanding NoSQL Document Databases,作者:Alex Williams

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2010-08-27 09:45:49

CSS Sprites

2021-03-04 09:00:00

架構(gòu)Lambda工具

2019-03-13 09:00:00

Web應(yīng)用SPAJavaScript

2024-02-02 10:51:53

2020-11-20 15:04:27

數(shù)據(jù)庫云數(shù)據(jù)庫安全

2021-09-28 09:25:05

NoSQL數(shù)據(jù)庫列式數(shù)據(jù)庫

2017-03-17 14:44:04

關(guān)系型數(shù)據(jù)庫原理

2011-10-09 09:38:03

OracleNoSQL

2020-06-15 07:00:00

GitOpsKubernetesDevOps

2011-09-16 16:01:31

NoSQL

2010-06-17 11:22:37

SQL Server數(shù)

2019-02-26 15:23:01

數(shù)據(jù)安全磁盤

2023-11-27 00:58:00

數(shù)據(jù)庫AI

2018-05-22 09:00:00

2015-10-22 10:52:34

NoSQL數(shù)據(jù)庫鍵值型數(shù)據(jù)庫文檔型數(shù)據(jù)庫

2019-07-08 10:36:34

數(shù)據(jù)庫WebNoSQL

2010-04-01 09:45:38

NoSQL

2019-03-20 15:59:11

NoSQLRedis數(shù)據(jù)庫

2011-07-19 09:08:50

JavaNoSQL

2024-03-28 09:00:00

NoSQL數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)