nosql統(tǒng)計(jì)的簡(jiǎn)單介紹

nosql和sql的區(qū)別

一樣是數(shù)據(jù)庫(kù)

創(chuàng)新互聯(lián)公司是專業(yè)的東遼網(wǎng)站建設(shè)公司,東遼接單;提供成都做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行東遼網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

NOSQL查詢速度快,但是占用空間也大(都去索引那邊了)

但是NOSQL查詢復(fù)雜的邏輯關(guān)系的時(shí)候,只能批量獲取到本地去統(tǒng)計(jì)而SQL能通過(guò)條件和關(guān)聯(lián)表等方式進(jìn)行篩選只顯示符合條件的語(yǔ)句。

NOSQL用于無(wú)條件或少條件下的存取。百億級(jí)數(shù)據(jù)也能快速取出。

SQL用于復(fù)雜的邏輯存取。在數(shù)據(jù)量不多的情況下也能跟NOSQL一樣用于數(shù)據(jù)存儲(chǔ)。

什么數(shù)據(jù)庫(kù)適合進(jìn)行web數(shù)據(jù)的用戶追蹤和統(tǒng)計(jì)。sql和nosql都可以。要求是需要進(jìn)行大量頻繁的寫

NOSQL的話,Redis的寫很快,我就用來(lái)在Tomcat集群中實(shí)現(xiàn)Session共享。但是Redis計(jì)算和統(tǒng)計(jì)能力比較弱。MongoDB計(jì)算統(tǒng)計(jì)方面會(huì)比較方便,但是讀寫性能稍差。一般用還是MongoDB吧,各方面平衡一點(diǎ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類:

Redis 是典型,其 value 是具體的數(shù)據(jù)結(jié)構(gòu),包括 string, hash, list, set, sorted set, bitmap, hyperloglog,常被稱為數(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ī)寫效率遠(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ù)寫入后無(wú)須更新。

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

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

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

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

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

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

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

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

分享題目:nosql統(tǒng)計(jì)的簡(jiǎn)單介紹
分享路徑:http://muchs.cn/article30/phgiso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、品牌網(wǎng)站制作品牌網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)公司、外貿(mào)建站

廣告

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