欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

nosql的劣勢(shì),nosql的優(yōu)缺點(diǎn)

NoSQL在少量數(shù)據(jù)的存儲(chǔ)上,與傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)相比有什么劣勢(shì)嗎?

個(gè)人不認(rèn)為nosql在少量數(shù)據(jù)存儲(chǔ)上有啥優(yōu)勢(shì)。nosql主要解決的是auto sharding的問(wèn)題,你不需要sharding,搞啥nosql. 作者:方圓 鏈接:

成都創(chuàng)新互聯(lián)公司主營(yíng)凌海網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開(kāi)發(fā),凌海h5成都微信小程序搭建,凌海網(wǎng)站營(yíng)銷(xiāo)推廣歡迎凌海等地區(qū)企業(yè)咨詢(xún)

高性能 NoSQL

關(guān)系數(shù)據(jù)庫(kù)經(jīng)過(guò)幾十年的發(fā)展,已經(jīng)非常成熟,但同時(shí)也存在不足:

表結(jié)構(gòu)是強(qiáng)約束的,業(yè)務(wù)變更時(shí)擴(kuò)充很麻煩。

如果對(duì)大數(shù)據(jù)量的表進(jìn)行統(tǒng)計(jì)運(yùn)算,I/O會(huì)很高,因?yàn)榧词怪会槍?duì)某列進(jìn)行運(yùn)算,也需要將整行數(shù)據(jù)讀入內(nèi)存。

全文搜索只能使用 Like 進(jìn)行整表掃描,性能非常低。

針對(duì)這些不足,產(chǎn)生了不同的 NoSQL 解決方案,在某些場(chǎng)景下比關(guān)系數(shù)據(jù)庫(kù)更有優(yōu)勢(shì),但同時(shí)也犧牲了某些特性,所以不能片面的迷信某種方案,應(yīng)將其作為 SQL 的有利補(bǔ)充。

NoSQL != No SQL,而是:

NoSQL = Not Only SQL

典型的 NoSQL 方案分為4類(lèi):

Redis 是典型,其 value 是具體的數(shù)據(jù)結(jié)構(gòu),包括 string, hash, list, set, sorted set, bitmap, hyperloglog,常被稱(chēng)為數(shù)據(jù)結(jié)構(gòu)服務(wù)器。

以 list 為例:

LPOP key 是移除并返回隊(duì)列左邊的第一個(gè)元素。

如果用關(guān)系數(shù)據(jù)庫(kù)就比較麻煩了,需要操作:

Redis 的缺點(diǎn)主要體現(xiàn)在不支持完成的ACID事務(wù),只能保證隔離性和一致性,無(wú)法保證原子性和持久性。

最大的特點(diǎn)是 no-schema,無(wú)需在使用前定義字段,讀取一個(gè)不存在的字段也不會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤。

特點(diǎn):

以電商為例,不同商品的屬性差異很大,如冰箱和電腦,這種差異性在關(guān)系數(shù)據(jù)庫(kù)中會(huì)有很大的麻煩,而使用文檔數(shù)據(jù)庫(kù)則非常方便。

文檔數(shù)據(jù)庫(kù)的主要缺點(diǎn):

關(guān)系數(shù)據(jù)庫(kù)是按行來(lái)存儲(chǔ)的,列式數(shù)據(jù)庫(kù)是按照列來(lái)存儲(chǔ)數(shù)據(jù)。

按行存儲(chǔ)的優(yōu)勢(shì):

在某些場(chǎng)景下,這些優(yōu)勢(shì)就成為劣勢(shì)了,例如,計(jì)算超重人員的數(shù)據(jù),只需要讀取體重這一列進(jìn)行統(tǒng)計(jì)即可,但行式存儲(chǔ)會(huì)將整行數(shù)據(jù)讀取到內(nèi)存中,很浪費(fèi)。

而列式存儲(chǔ)中,只需要讀取體重這列的數(shù)據(jù)即可,I/O 將大大減少。

除了節(jié)省I/O,列式存儲(chǔ)還有更高的壓縮比,可以節(jié)省存儲(chǔ)空間。普通行式數(shù)據(jù)庫(kù)的壓縮比在 3:1 到 5:1 左右,列式數(shù)據(jù)庫(kù)在 8:1 到 30:1,因?yàn)閱蝹€(gè)列的數(shù)據(jù)相似度更高。

列式存儲(chǔ)的隨機(jī)寫(xiě)效率遠(yuǎn)低于行式存儲(chǔ),因?yàn)樾惺酱鎯?chǔ)時(shí)同一行多個(gè)列都存儲(chǔ)在連續(xù)空間中,而列式存儲(chǔ)將不同列存儲(chǔ)在不連續(xù)的空間。

一般將列式存儲(chǔ)應(yīng)用在離線大數(shù)據(jù)分析統(tǒng)計(jì)場(chǎng)景,因?yàn)檫@時(shí)主要針對(duì)部分列進(jìn)行操作,而且數(shù)據(jù)寫(xiě)入后無(wú)須更新。

關(guān)系數(shù)據(jù)庫(kù)通過(guò)索引進(jìn)行快速查詢(xún),但在全文搜索的情景下,索引就不夠了,因?yàn)椋?/p>

假設(shè)有一個(gè)交友網(wǎng)站,信息表如下:

需要匹配性別、地點(diǎn)、語(yǔ)言列。

需要匹配性別、地點(diǎn)、愛(ài)好列。

實(shí)際搜索中,各種排列組合非常多,關(guān)系數(shù)據(jù)庫(kù)很難支持。

全文搜索引擎是使用 倒排索引 技術(shù),建立單詞到文檔的索引,例如上面的表信息建立倒排索引:

所以特別適合根據(jù)關(guān)鍵詞來(lái)查詢(xún)文檔內(nèi)容。

上面介紹了幾種典型的NoSQL方案,及各自的適用場(chǎng)景和特點(diǎn),您可以根據(jù)實(shí)際需求進(jìn)行選擇。

傳統(tǒng)數(shù)據(jù)庫(kù)與新型數(shù)據(jù)庫(kù)的優(yōu)缺點(diǎn)

一:傳統(tǒng)數(shù)據(jù)庫(kù)

(1)傳統(tǒng)索引不適于海量數(shù)據(jù)? ??

傳統(tǒng)行存數(shù)據(jù)庫(kù)索引需要手工設(shè)定,對(duì)應(yīng)用不完全透明,隨場(chǎng)景和需求的變化需要不斷調(diào)整,人工維護(hù)成本很高。并且傳統(tǒng)索引占用存儲(chǔ)空間很大,甚至高于數(shù)據(jù)本身,造成查詢(xún)效率的下降。

(2)數(shù)據(jù)裝載速度慢

因?yàn)樗饕枰匦聞?chuàng)建,加載性能會(huì)變的很糟糕。分析型架構(gòu)系統(tǒng)要解決這些個(gè)問(wèn)題,必須最大限度地減少磁盤(pán) I/O ,提升查詢(xún)效率,減小人工維護(hù)成本。南大通用分析型數(shù)據(jù)庫(kù)GBase8a (以下簡(jiǎn)稱(chēng)GBase 8a)通過(guò)列存儲(chǔ)模式、數(shù)據(jù)壓縮、智能化的索引、并行處理、并發(fā)控制、高效的查詢(xún)優(yōu)化器等技術(shù),使得上述問(wèn)題得到有效解決。以下各節(jié)將描述 GBase 8a 的創(chuàng)新架構(gòu)如何實(shí)現(xiàn)這些目標(biāo)。

二:新型數(shù)據(jù)庫(kù)

新型數(shù)據(jù)庫(kù)采用分布式并行計(jì)算架構(gòu),部署于X86通用服務(wù)器,滿足大數(shù)據(jù)實(shí)時(shí)交易需求,成本低、擴(kuò)展性高,突破了傳統(tǒng)數(shù)據(jù)庫(kù)性能瓶頸。

分布式非關(guān)系型數(shù)據(jù)庫(kù)技術(shù)創(chuàng)新

非關(guān)系型數(shù)據(jù)庫(kù)即NoSQL,拋棄了關(guān)系數(shù)據(jù)庫(kù)復(fù)雜的關(guān)系操作、事務(wù)處理等功能,僅提供簡(jiǎn)單的鍵值對(duì)(Key, Value)數(shù)據(jù)的存儲(chǔ)與查詢(xún),換取高擴(kuò)展性和高性能,滿足論壇、博客、SNS、微博等互聯(lián)網(wǎng)類(lèi)應(yīng)用場(chǎng)景下針對(duì)海量數(shù)據(jù)的簡(jiǎn)單操作需求。主要技術(shù)創(chuàng)新為:

(1) 簡(jiǎn)單的數(shù)據(jù)操作換取高效響應(yīng)。NoSQL僅支持按照Key(關(guān)鍵字)來(lái)存儲(chǔ)和查詢(xún)Value(數(shù)據(jù)),不支持對(duì)非關(guān)鍵字?jǐn)?shù)據(jù)列的高效查詢(xún);因數(shù)據(jù)操作簡(jiǎn)單、數(shù)據(jù)間一般不需要關(guān)聯(lián)操作,故系統(tǒng)可支持高并發(fā)和較快的響應(yīng)速度。

(2) 多種一致性策略滿足業(yè)務(wù)需求。不同于傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)僅支持強(qiáng)一致性策略,NoSQL還支持弱一致性和最終一致性等多種策略,可根據(jù)應(yīng)用場(chǎng)景進(jìn)行對(duì)應(yīng)配置。例如,對(duì)寫(xiě)入操作頻繁,但數(shù)據(jù)讀取最新版本要求并不嚴(yán)格的應(yīng)用,如互聯(lián)網(wǎng)網(wǎng)頁(yè)數(shù)據(jù)的存儲(chǔ)和分析應(yīng)用,可以采用最終一致性策略;而對(duì)訂購(gòu)關(guān)系存儲(chǔ)的應(yīng)用,則必須用強(qiáng)一致性策略,保證總是讀取最新版本數(shù)據(jù)

mysql mongodb區(qū)別

前言:

MySQL與MongoDB都是開(kāi)源的常用數(shù)據(jù)庫(kù),但是MySQL是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),MongoDB則是非關(guān)系型數(shù)據(jù)庫(kù),也叫文檔型數(shù)據(jù)庫(kù),是一種NoSQL的數(shù)據(jù)庫(kù)。它們各有各的優(yōu)點(diǎn),關(guān)鍵是看用在什么地方。所以我們所熟知的那些SQL語(yǔ)句就不適用于MongoDB了,因?yàn)镾QL語(yǔ)句是關(guān)系型數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。

一、關(guān)系型數(shù)據(jù)庫(kù)-MySQL

1、在不同的引擎上有不同的存儲(chǔ)方式。

2、查詢(xún)語(yǔ)句是使用傳統(tǒng)的sql語(yǔ)句,擁有較為成熟的體系,成熟度很高。

3、開(kāi)源數(shù)據(jù)庫(kù)的份額在不斷增加,mysql的份額頁(yè)在持續(xù)增長(zhǎng)。

4、缺點(diǎn)就是在海量數(shù)據(jù)處理的時(shí)候效率會(huì)顯著變慢。

二、非關(guān)系型數(shù)據(jù)庫(kù)-MongoDB

非關(guān)系型數(shù)據(jù)庫(kù)(nosql ),屬于文檔型數(shù)據(jù)庫(kù)。先解釋一下文檔的數(shù)據(jù)庫(kù),即可以存放xml、json、bson類(lèi)型系那個(gè)的數(shù)據(jù)。這些數(shù)據(jù)具備自述性,呈現(xiàn)分層的樹(shù)狀數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)由鍵值(key=value)對(duì)組成。

1、存儲(chǔ)方式:虛擬內(nèi)存+持久化。

2、查詢(xún)語(yǔ)句:是獨(dú)特的MongoDB的查詢(xún)方式。

3、適合場(chǎng)景:事件的記錄,內(nèi)容管理或者博客平臺(tái)等等。

4、架構(gòu)特點(diǎn):可以通過(guò)副本集,以及分片來(lái)實(shí)現(xiàn)高可用。

5、數(shù)據(jù)處理:數(shù)據(jù)是存儲(chǔ)在硬盤(pán)上的,只不過(guò)需要經(jīng)常讀取的數(shù)據(jù)會(huì)被加載到內(nèi)存中,將數(shù)據(jù)存儲(chǔ)在物理內(nèi)存中,從而達(dá)到高速讀寫(xiě)。

6、成熟度與廣泛度:新興數(shù)據(jù)庫(kù),成熟度較低,Nosql數(shù)據(jù)庫(kù)中最為接近關(guān)系型數(shù)據(jù)庫(kù),比較完善的DB之一,適用人群不斷在增長(zhǎng)。

三、MongoDB優(yōu)勢(shì)與劣勢(shì)

優(yōu)勢(shì):

1、在適量級(jí)的內(nèi)存的MongoDB的性能是非常迅速的,它將熱數(shù)據(jù)存儲(chǔ)在物理內(nèi)存中,使得熱數(shù)據(jù)的讀寫(xiě)變得十分快。

2、MongoDB的高可用和集群架構(gòu)擁有十分高的擴(kuò)展性。

3、在副本集中,當(dāng)主庫(kù)遇到問(wèn)題,無(wú)法繼續(xù)提供服務(wù)的時(shí)候,副本集將選舉一個(gè)新的主庫(kù)繼續(xù)提供服務(wù)。

4、MongoDB的Bson和JSon格式的數(shù)據(jù)十分適合文檔格式的存儲(chǔ)與查詢(xún)。

劣勢(shì):

1、 不支持事務(wù)操作。MongoDB本身沒(méi)有自帶事務(wù)機(jī)制,若需要在MongoDB中實(shí)現(xiàn)事務(wù)機(jī)制,需通過(guò)一個(gè)額外的表,從邏輯上自行實(shí)現(xiàn)事務(wù)。

2、 應(yīng)用經(jīng)驗(yàn)少,由于NoSQL興起時(shí)間短,應(yīng)用經(jīng)驗(yàn)相比關(guān)系型數(shù)據(jù)庫(kù)較少。

3、MongoDB占用空間過(guò)大。

非關(guān)系型數(shù)據(jù)庫(kù)有哪些優(yōu)缺點(diǎn)?

非關(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ǔ)類(lèi)型。

2、速度快:nosql可以使用硬盤(pán)或者隨機(jī)存儲(chǔ)器作為載體,而關(guān)系型數(shù)據(jù)庫(kù)只能使用硬盤(pán);

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ù)雜查詢(xún)方面稍欠。

非關(guān)系型數(shù)據(jù)庫(kù)的分類(lèi)和比較:

1、文檔型

2、key-value型

3、列式數(shù)據(jù)庫(kù)

4、圖形數(shù)據(jù)庫(kù)

文章標(biāo)題:nosql的劣勢(shì),nosql的優(yōu)缺點(diǎn)
文章源于:http://chinadenli.net/article22/dsgcgcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站響應(yīng)式網(wǎng)站企業(yè)網(wǎng)站制作用戶體驗(yàn)網(wǎng)站收錄網(wǎng)站建設(shè)

廣告

聲明:本網(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)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)