中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
程序員修神之路--用NOSql給高并發(fā)系統(tǒng)加速
隨著互聯(lián)網(wǎng)大潮的到來(lái),越來(lái)越多網(wǎng)站,應(yīng)用系統(tǒng)需要海量數(shù)據(jù)的支撐,高并發(fā)、低延遲、高可用、高擴(kuò)展等要求在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)中已經(jīng)得不到滿足,或者說(shuō)關(guān)系型數(shù)據(jù)庫(kù)應(yīng)對(duì)這些需求已經(jīng)顯得力不從心了。關(guān)系型數(shù)據(jù)庫(kù)經(jīng)過(guò)幾十年的發(fā)展已經(jīng)很成熟,強(qiáng)大的sql語(yǔ)句支持,完美的ACID屬性的支持,使得關(guān)系型數(shù)據(jù)庫(kù)廣泛應(yīng)用于各種各樣的應(yīng)用系統(tǒng)中,但是應(yīng)用的場(chǎng)景廣泛并非意味著完美。

- 由于關(guān)系型數(shù)據(jù)庫(kù)是按行進(jìn)行存儲(chǔ)的,在某些只統(tǒng)計(jì)一列的需求場(chǎng)景下,也需要把整行讀入內(nèi)存,導(dǎo)致了一個(gè)小小的統(tǒng)計(jì)需求高IO的缺點(diǎn)

- 關(guān)系型數(shù)據(jù)庫(kù)無(wú)法存儲(chǔ)數(shù)據(jù)結(jié)構(gòu),比如:一個(gè)商品可以從屬于多個(gè)分類,業(yè)務(wù)上的從屬關(guān)系體現(xiàn)到存儲(chǔ)上是一個(gè)列表而已,但是關(guān)系型數(shù)據(jù)庫(kù)需要把這些關(guān)系存儲(chǔ)為多行,無(wú)法直接存儲(chǔ)為一個(gè)列表。

- 關(guān)系型數(shù)據(jù)庫(kù)中的存儲(chǔ)單位表的架構(gòu)是強(qiáng)約束,操作不存在的列會(huì)報(bào)出異常,而且添加、更新、刪除列必須執(zhí)行DDL語(yǔ)句,如果表的現(xiàn)存數(shù)據(jù)量比較大,會(huì)出現(xiàn)長(zhǎng)時(shí)間鎖表的現(xiàn)象。

- 關(guān)系型數(shù)據(jù)庫(kù)全文搜索功能普通比較弱,用like去匹配關(guān)鍵詞的時(shí)候,數(shù)據(jù)量比較大的情況下會(huì)出現(xiàn)慢查詢的現(xiàn)象。

- 關(guān)系型數(shù)據(jù)庫(kù)基于表格的關(guān)系模型使得很難添加新的或不同種類的關(guān)聯(lián)信息。

由于以上這些諸多問(wèn)題,便誕生了以“NOSQL”為口號(hào)的很多解決方案。在某些關(guān)系型數(shù)據(jù)庫(kù)不擅長(zhǎng)的領(lǐng)域,Nosql表現(xiàn)的很出色。上天是公平的,給你打開了一扇窗戶,必會(huì)給你關(guān)上半扇門,NoSql是以犧牲ACID某個(gè)或者某些特性為代價(jià)的。

NoSQL并不是銀彈,更多的時(shí)候是關(guān)系型數(shù)據(jù)庫(kù)一個(gè)有力補(bǔ)充,或者是特定場(chǎng)景下優(yōu)于關(guān)系型數(shù)據(jù)庫(kù)的一種解決方案

NoSQL

NoSQL,泛指非關(guān)系型的數(shù)據(jù)庫(kù)?,F(xiàn)在大家更喜歡翻譯成:not only sql

根據(jù)NoSQL的存儲(chǔ)等特性,大體可以分為以下幾類

- 鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)。相關(guān)的產(chǎn)品:Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached。主要解決關(guān)系數(shù)據(jù)庫(kù)無(wú)法存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的問(wèn)題。

- 列存儲(chǔ)數(shù)據(jù)庫(kù)。相關(guān)產(chǎn)品:BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS。解決關(guān)系數(shù)據(jù)庫(kù)大數(shù)據(jù)場(chǎng)景下的 I/O 問(wèn)題

- 文檔數(shù)據(jù)庫(kù)。相關(guān)產(chǎn)品:MongoDB、CouchDB、ThruDB、CloudKit、Perservere、Jackrabbit。解決關(guān)系數(shù)據(jù)庫(kù)強(qiáng) schema 約束的問(wèn)題。

- 圖形數(shù)據(jù)庫(kù)。相關(guān)產(chǎn)品:Neo4J、OrientDB、InfoGrid、GraphDB。主要解決大量復(fù)雜、互連接、低結(jié)構(gòu)化的圖結(jié)構(gòu)場(chǎng)合,如社交網(wǎng)絡(luò)、推薦系統(tǒng)等

- 全文搜索引擎。相關(guān)產(chǎn)品:Elasticsearch。主要解決關(guān)系數(shù)據(jù)庫(kù)的全文搜索性能問(wèn)題。

由此可見(jiàn),沒(méi)有哪一種NoSql是完美的,每一種Nosql都有自己擅長(zhǎng)的領(lǐng)域,這也是我們做系統(tǒng)架構(gòu)中要考慮的重要因素。

場(chǎng)景1

電商的商品設(shè)計(jì)過(guò)程中,每種商品的屬性都不同,屬性數(shù)目不同,屬性名不同,同一個(gè)商品有可能會(huì)屬于多個(gè)分類,而且隨著業(yè)務(wù)的發(fā)展,很多商品會(huì)增加新的屬性,而且最令程序員頭疼莫過(guò)于每種屬性都有可能有搜索的可能性(當(dāng)然搜索可以利用搜索引擎來(lái)實(shí)現(xiàn))。遇到這樣的需求場(chǎng)景,如果利用關(guān)系型數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)的話,表的字段會(huì)非常多,而且字段的定義非常令人頭疼。

這樣的場(chǎng)景非常適合NOsql中的文檔型數(shù)據(jù)庫(kù),比如MongoDB。文檔型數(shù)據(jù)庫(kù)新增字段非常簡(jiǎn)單,不像關(guān)系型數(shù)據(jù)庫(kù)需要先執(zhí)行DDL來(lái)增加字段,直接可以利用程序來(lái)進(jìn)行讀寫,歷史數(shù)據(jù)就算是沒(méi)有相應(yīng)的字段也不會(huì)有異常的情況發(fā)生。最重要的一點(diǎn),文檔型數(shù)據(jù)庫(kù)很擅長(zhǎng)存儲(chǔ)復(fù)雜結(jié)構(gòu)的數(shù)據(jù),一般情況下業(yè)務(wù)上可以利用表現(xiàn)能力很強(qiáng)的json數(shù)據(jù)結(jié)構(gòu)。

{
    'Id':1,
    'ProductName':'杜蕾斯加強(qiáng)版',
    'Price':100,
    'Type':[
        1,
        2,
        4
    ],
    'Length':20,
    'Height':2

}

如果所有商品信息都用mongodb來(lái)存儲(chǔ)的話,有的場(chǎng)景并不是十分完美。比如商品被成功購(gòu)買之后扣庫(kù)存的問(wèn)題,聯(lián)合查詢的問(wèn)題,由于Nosql天生對(duì)ACID支持不足的原因,一個(gè)事務(wù)性的操作很難在Nosql中實(shí)現(xiàn),所以設(shè)計(jì)系統(tǒng)的時(shí)候在很多情況下是關(guān)系數(shù)據(jù)庫(kù)+Nosql 來(lái)共同實(shí)現(xiàn)業(yè)務(wù)。

場(chǎng)景2

很多具體的業(yè)務(wù)中都有記錄數(shù)據(jù)然后進(jìn)行統(tǒng)計(jì)的需求場(chǎng)景,比如那些統(tǒng)計(jì)uv,pv的系統(tǒng)。日志型的數(shù)據(jù)量非常大,而且還有可能有峰值的出現(xiàn),如果用關(guān)系型數(shù)據(jù)庫(kù)來(lái)存儲(chǔ),很有可能在IO上會(huì)出現(xiàn)瓶頸,而且有可能會(huì)影響其他正常的業(yè)務(wù),更不幸的是當(dāng)執(zhí)行統(tǒng)計(jì)語(yǔ)句的時(shí)候,性能更是差強(qiáng)人意。這樣的日志型統(tǒng)計(jì)業(yè)務(wù)很適合HBase這樣的列式Nosql,業(yè)務(wù)上要統(tǒng)計(jì)一天的uv,pv數(shù)據(jù),HBase很適合統(tǒng)計(jì)某一列數(shù)據(jù)的場(chǎng)景,因?yàn)橹恍枰褜?duì)應(yīng)的列進(jìn)行統(tǒng)計(jì)即可,不像關(guān)系型數(shù)據(jù)庫(kù)那樣需要把所有行都加載進(jìn)內(nèi)存,而且列式存儲(chǔ)一般比行式存儲(chǔ)擁有更大的壓縮比例,占用的磁盤空間會(huì)更少。

列式存儲(chǔ)的應(yīng)用場(chǎng)景有一定的限制,一般用于統(tǒng)計(jì)和大數(shù)據(jù)的分析中。

場(chǎng)景3

在多數(shù)高并發(fā)系統(tǒng)中都存在緩存的設(shè)計(jì),而緩存的一般數(shù)據(jù)結(jié)構(gòu)都是K-V結(jié)構(gòu)。緩存是一種提高系統(tǒng)性能的有效手段,因其需要提供快速訪問(wèn)的特性,一般緩存都放置于內(nèi)存當(dāng)中。比如現(xiàn)在我們要設(shè)計(jì)一個(gè)用戶管理系統(tǒng),每個(gè)用戶信息可以做緩存以便提供高速的訪問(wèn),由于很多系統(tǒng)都采用分布式的部署方式,所以采用進(jìn)程內(nèi)的緩存方式并不可取,這個(gè)時(shí)候就需要有一種高速的外部存儲(chǔ)來(lái)提供這種業(yè)務(wù),這正是kv型Nosql的典型應(yīng)用場(chǎng)景之一。其中以redis為代表,具體的業(yè)務(wù)中可以以用戶id為key,用戶的信息為value存儲(chǔ)在redis中,而且redis在3.0之后可以做集群了,在高可用和擴(kuò)展上更能助力業(yè)務(wù)方。redis支持的數(shù)據(jù)類型很多,在不同的場(chǎng)景下選擇不同的數(shù)據(jù)類型。

場(chǎng)景4

當(dāng)一個(gè)系統(tǒng)有搜索的業(yè)務(wù)時(shí)候,如果搜索的條件是一些簡(jiǎn)單的類型搜索,關(guān)系型數(shù)據(jù)庫(kù)還可以滿足,但是如果有全文搜索,就是我們平時(shí)sql寫的like ‘%xx%’這樣的搜索,關(guān)系型數(shù)據(jù)庫(kù)可能并不是最好的選擇,全文搜索引擎類型的Nosql也許是一個(gè)更好的解決方案,其中以Elasticsearch 為代表。全文搜索引擎的搜索的條件可以隨意排列組合,并且可以實(shí)現(xiàn)關(guān)系型數(shù)據(jù)庫(kù)like方式的模糊匹配。

全文搜索引擎的技術(shù)原理稱為“倒排索引”(inverted index),是一種索引方法,其基本原理是建立單詞到文檔的索引。與之相對(duì)是,是“正排索引”,其基本原理是建立文檔到單詞的索引。

場(chǎng)景5

在社交系統(tǒng)中最常見(jiàn)例子就是社會(huì)網(wǎng)絡(luò)中人與人之間的關(guān)系。關(guān)系型數(shù)據(jù)庫(kù)用于存儲(chǔ)“關(guān)系型”數(shù)據(jù)的效果并不好,其查詢復(fù)雜、緩慢、超出預(yù)期,而圖形數(shù)據(jù)庫(kù)的獨(dú)特設(shè)計(jì)恰恰彌補(bǔ)了這個(gè)缺陷,解決關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)和處理復(fù)雜關(guān)系型數(shù)據(jù)功能較弱的問(wèn)題。其中以Neo4j為代表。想深入研究的同學(xué)請(qǐng)移步百度。

無(wú)論是關(guān)系型數(shù)據(jù)庫(kù)還是nosql數(shù)據(jù)庫(kù)都不是銀彈,每一種事物都有它最善長(zhǎng)的領(lǐng)域。設(shè)計(jì)一個(gè)好的系統(tǒng),需要綜合考慮各種因素,根據(jù)具體的業(yè)務(wù)場(chǎng)景來(lái)選擇最合適的解決方案。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Redis-第二章節(jié)-簡(jiǎn)介
數(shù)據(jù)多的時(shí)候?yàn)槭裁匆褂胷edis而不用mysql?
NoSQL還是SQL?這一篇講清楚
淺談常見(jiàn)的 NoSQL 技術(shù)方案和選型
架構(gòu)設(shè)計(jì)
JAVA項(xiàng)目從運(yùn)維部署到項(xiàng)目開發(fā)(三.Redis)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服