NoSQL,指的是非關(guān)系型的數(shù)據(jù)庫(kù)。NoSQL有時(shí)也稱作Not Only SQL的縮寫,是對(duì)不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)管理系統(tǒng)的統(tǒng)稱。
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)秀嶼免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
NoSQL用于超大規(guī)模數(shù)據(jù)的存儲(chǔ)。(例如谷歌或Facebook每天為他們的用戶收集萬(wàn)億比特的數(shù)據(jù))。這些類型的數(shù)據(jù)存儲(chǔ)不需要固定的模式,無(wú)需多余操作就可以橫向擴(kuò)展。
NoSQL的優(yōu)點(diǎn)/缺點(diǎn)
優(yōu)點(diǎn):
- 高可擴(kuò)展性
- 分布式計(jì)算
- 低成本
- 架構(gòu)的靈活性,半結(jié)構(gòu)化數(shù)據(jù)
- 沒(méi)有復(fù)雜的關(guān)系
缺點(diǎn):
- 沒(méi)有標(biāo)準(zhǔn)化
- 有限的查詢功能(到目前為止)
- 最終一致是不直觀的程序 (BY三人行慕課)
NoSQL 數(shù)據(jù)庫(kù)因其功能性、易于開(kāi)發(fā)性和可擴(kuò)展性而廣受認(rèn)可,它們?cè)絹?lái)越多地用于大數(shù)據(jù)和實(shí)時(shí) Web 應(yīng)用程序,在本文中,我們通過(guò)示例討論 NoSQL、何時(shí)使用 NoSQL 與 SQL 及其用例。
NoSQL是一種下一代數(shù)據(jù)庫(kù)管理系統(tǒng) (DBMS)。NoSQL 數(shù)據(jù)庫(kù)具有靈活的模式,可用于構(gòu)建具有大量數(shù)據(jù)和高負(fù)載的現(xiàn)代應(yīng)用程序。
“NoSQL”一詞最初是由 Carlo Strozzi 在 1998 年創(chuàng)造的,盡管自 1960 年代后期以來(lái)就已經(jīng)存在類似的數(shù)據(jù)庫(kù)。然而,NoSQL 的發(fā)展始于 2009 年初,并且發(fā)展迅速。
在處理大量數(shù)據(jù)時(shí),任何關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng) (RDBMS) 的響應(yīng)時(shí)間都會(huì)變慢。為了解決這個(gè)問(wèn)題,我們可以通過(guò)升級(jí)現(xiàn)有硬件來(lái)“擴(kuò)大”信息系統(tǒng),這非常昂貴。但是,NoSQL 可以更好地橫向擴(kuò)展并且更具成本效益。
NoSQL 對(duì)于非結(jié)構(gòu)化或非常大的數(shù)據(jù)對(duì)象(例如聊天日志數(shù)據(jù)、視頻或圖像)非常有用,這就是為什么 NoSQL 在微軟、谷歌、亞馬遜、Meta (Facebook) 等互聯(lián)網(wǎng)巨頭中特別受歡迎的原因。
一些流行的 NoSQL 數(shù)據(jù)庫(kù)包括:
隨著企業(yè)更快地積累更大的數(shù)據(jù)集,結(jié)構(gòu)化數(shù)據(jù)和關(guān)系模式并不總是適合。有必要使用非結(jié)構(gòu)化數(shù)據(jù)和大型對(duì)象來(lái)更好地捕獲這些信息。
傳統(tǒng)的 RDBMS 使用 SQL(結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)法來(lái)存儲(chǔ)和檢索結(jié)構(gòu)化數(shù)據(jù),相反,NoSQL 數(shù)據(jù)庫(kù)包含廣泛的功能,可以存儲(chǔ)和檢索結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化和多態(tài)數(shù)據(jù)。
有時(shí),NoSQL 也被稱為“ 不僅僅是 SQL ”,強(qiáng)調(diào)它可能支持類似 SQL 的語(yǔ)言或與 SQL 數(shù)據(jù)庫(kù)并列。SQL 和 NoSQL DBMS 之間的一個(gè)區(qū)別是 JOIN 功能。SQL 數(shù)據(jù)庫(kù)使用 JOIN 子句來(lái)組合來(lái)自兩個(gè)或多個(gè)表的行,因?yàn)?NoSQL 數(shù)據(jù)庫(kù)本質(zhì)上不是表格的,所以這個(gè)功能并不總是可行或相關(guān)的。
但是,一些 NoSQL DBMS 可以執(zhí)行類似于 JOIN的操作——就像 MongoDB 一樣。這并不意味著不再需要 SQL DBMS,相反,NoSQL 和 SQL 數(shù)據(jù)庫(kù)傾向于以不同的方式解決類似的問(wèn)題。
一般來(lái)說(shuō),在以下情況下,NoSQL 比 SQL 更可取:
許多行業(yè)都在采用 NoSQL,取代關(guān)系數(shù)據(jù)庫(kù),從而為某些業(yè)務(wù)應(yīng)用程序提供更高的靈活性和可擴(kuò)展性,下面給出了 NoSQL 數(shù)據(jù)庫(kù)的一些企業(yè)用例。
內(nèi)容管理是一組用于收集、管理、傳遞、檢索和發(fā)布任何格式的信息的過(guò)程,包括文本、圖像、音頻和視頻。NoSQL 數(shù)據(jù)庫(kù)可以通過(guò)其靈活和開(kāi)放的數(shù)據(jù)模型為存儲(chǔ)多媒體內(nèi)容提供更好的選擇。
例如,福布斯在短短幾個(gè)月內(nèi)就構(gòu)建了一個(gè)基于 MongoDB 的定制內(nèi)容管理系統(tǒng),以更低的成本為他們提供了更大的敏捷性。
大數(shù)據(jù)是指太大而無(wú)法通過(guò)傳統(tǒng)處理系統(tǒng)處理的數(shù)據(jù)集,實(shí)時(shí)存儲(chǔ)和檢索大數(shù)據(jù)的系統(tǒng)在分析 歷史 數(shù)據(jù)的同時(shí)使用流處理來(lái)攝取新數(shù)據(jù),這是一系列非常適合 NoSQL 數(shù)據(jù)庫(kù)的功能。
Zoom使用 DynamoDB(按需模式)使其數(shù)據(jù)能夠在沒(méi)有性能問(wèn)題的情況下進(jìn)行擴(kuò)展,即使該服務(wù)在 COVID-19 大流行的早期使用量激增。
物聯(lián)網(wǎng)設(shè)備具有連接到互聯(lián)網(wǎng)或通信網(wǎng)絡(luò)的嵌入式軟件和傳感器,能夠在無(wú)需人工干預(yù)的情況下收集和共享數(shù)據(jù)。隨著數(shù)十億臺(tái)設(shè)備生成數(shù)不清的數(shù)據(jù),IoT NoSQL 數(shù)據(jù)庫(kù)為 IoT 服務(wù)提供商提供了可擴(kuò)展性和更靈活的架構(gòu)。
Freshub就是這樣的一項(xiàng)服務(wù),它從 MySQL 切換到 MongoDB,以更好地處理其大型、動(dòng)態(tài)、非統(tǒng)一的數(shù)據(jù)集。
擁有數(shù)十億智能手機(jī)用戶,可擴(kuò)展性正成為在移動(dòng)設(shè)備上提供服務(wù)的企業(yè)面臨的最大挑戰(zhàn)。具有更靈活數(shù)據(jù)模型的 NoSQL DBMS 通常是完美的解決方案。
例如,The Weather Channel使用 MongoDB 數(shù)據(jù)庫(kù)每分鐘處理數(shù)百萬(wàn)個(gè)請(qǐng)求,同時(shí)還處理用戶數(shù)據(jù)并提供天氣更新。
NoSQL描述的是大量結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)方法的集合,根據(jù)結(jié)構(gòu)化方法以及應(yīng)用場(chǎng)合的不同,主要可以將NoSQL分為以下幾類。
(1)Column-Oriented
面向檢索的列式存儲(chǔ),其存儲(chǔ)結(jié)構(gòu)為列式結(jié)構(gòu),同于關(guān)系型數(shù)據(jù)庫(kù)的行式結(jié)構(gòu),這種結(jié)構(gòu)會(huì)讓很多統(tǒng)計(jì)聚合操作更簡(jiǎn)單方便,使系統(tǒng)具有較高的可擴(kuò)展性。這類數(shù)據(jù)庫(kù)還可以適應(yīng)海量數(shù)據(jù)的增加以及數(shù)據(jù)結(jié)構(gòu)的變化,這個(gè)特點(diǎn)與云計(jì)算所需的相關(guān)需求是相符合的,比如GoogleAppengine的BigTable以及相同設(shè)計(jì)理念的Hadoop子系統(tǒng)HaBase就是這類的典型代表。需要特別指出的是,Big Table特別適用于MapReduce處理,這對(duì)于云計(jì)算的發(fā)展有很高的適應(yīng)性。
(2)Key-Value。
面向高性能并發(fā)讀/寫的緩存存儲(chǔ),其結(jié)構(gòu)類似于數(shù)據(jù)結(jié)構(gòu)中的Hash表,每個(gè)Key分別對(duì)應(yīng)一個(gè)Value,能夠提供非常快的查詢速度、大數(shù)據(jù)存放量和高并發(fā)操作,非常適合通過(guò)主鍵對(duì)數(shù)據(jù)進(jìn)行查詢和修改等操作。Key-Value數(shù)據(jù)庫(kù)的主要特點(diǎn)是具有極高的并發(fā)讀/寫性能,非常適合作為緩存系統(tǒng)使用。MemcacheDB、BerkeleyDB、Redis、Flare就是Key-Value數(shù)據(jù)庫(kù)的代表。
(3)Document-Oriented。
面向海量數(shù)據(jù)訪問(wèn)的文檔存儲(chǔ),這類存儲(chǔ)的結(jié)構(gòu)與Key-Value非常相似,也是每個(gè)Key分別對(duì)應(yīng)一個(gè)Value,但是這個(gè)Value主要以JSON(JavaScriptObjectNotations)或者XML等格式的文檔來(lái)進(jìn)行存儲(chǔ)。這種存儲(chǔ)方式可以很方便地被面向?qū)ο蟮恼Z(yǔ)言所使用。這類數(shù)據(jù)庫(kù)可在海量的數(shù)據(jù)中快速查詢數(shù)據(jù),典型代表為MongoDB、CouchDB等。
NoSQL具有擴(kuò)展簡(jiǎn)單、高并發(fā)、高穩(wěn)定性、成本低廉等優(yōu)勢(shì),也存在一些問(wèn)題。例如,NoSQL暫不提供SQL的支持,會(huì)造成開(kāi)發(fā)人員的額外學(xué)習(xí)成本;NoSQL大多為開(kāi)源軟件其成熟度與商用的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)相比有差距;NoSQL的架構(gòu)特性決定了其很難保證數(shù)據(jù)的完整性,適合在一些特殊的應(yīng)用場(chǎng)景使用。
非關(guān)系型數(shù)據(jù)庫(kù)嚴(yán)格上不是一種數(shù)據(jù)庫(kù),應(yīng)該是一種數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ)方法的集合,可以是文檔或者鍵值對(duì)等。當(dāng)初我在黑馬程序員培訓(xùn)時(shí)候就學(xué)過(guò)。
優(yōu)點(diǎn):
1、格式靈活:存儲(chǔ)數(shù)據(jù)的格式可以是key,value形式、文檔形式、圖片形式等等,文檔形式、圖片形式等等,使用靈活,應(yīng)用場(chǎng)景廣泛,而關(guān)系型數(shù)據(jù)庫(kù)則只支持基礎(chǔ)類型。
2、速度快:nosql可以使用硬盤或者隨機(jī)存儲(chǔ)器作為載體,而關(guān)系型數(shù)據(jù)庫(kù)只能使用硬盤;
3、高擴(kuò)展性;
4、成本低:nosql數(shù)據(jù)庫(kù)部署簡(jiǎn)單,基本都是開(kāi)源軟件。
缺點(diǎn):
1、不提供sql支持,學(xué)習(xí)和使用成本較高;
2、無(wú)事務(wù)處理;
3、數(shù)據(jù)結(jié)構(gòu)相對(duì)復(fù)雜,復(fù)雜查詢方面稍欠。
非關(guān)系型數(shù)據(jù)庫(kù)的分類和比較:
1、文檔型
2、key-value型
3、列式數(shù)據(jù)庫(kù)
4、圖形數(shù)據(jù)庫(kù)
當(dāng)前題目:nosql為什么成本低,nosql的優(yōu)缺點(diǎn)
文章轉(zhuǎn)載:http://m.newbst.com/article22/dssedcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計(jì)、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站改版、域名注冊(cè)、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)