哪個(gè)選項(xiàng)nosql數(shù)據(jù)庫(kù),nosql選擇

哪個(gè)屬于Nosql數(shù)據(jù)庫(kù)

NoSQL,泛指非關(guān)系型的數(shù)據(jù)庫(kù)。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在處理web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類(lèi)型的web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,出現(xiàn)了很多難以克服的問(wèn)題,而非關(guān)系型的數(shù)據(jù)庫(kù)則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。

成都創(chuàng)新互聯(lián)專注于建始企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城建設(shè)。建始網(wǎng)站建設(shè)公司,為建始等地區(qū)提供建站服務(wù)。全流程按需搭建網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

常見(jiàn)的Nosql數(shù)據(jù)庫(kù)有:

一、Redis數(shù)據(jù)庫(kù)

Redis(RemoteDictionaryServer),即遠(yuǎn)程字典服務(wù),是一個(gè)開(kāi)源的使用ANSIC語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。從2010年3月15日起,Redis的開(kāi)發(fā)工作由VMware主持。從2013年5月開(kāi)始,Redis的開(kāi)發(fā)由Pivotal贊助。

二、MongoDB數(shù)據(jù)庫(kù)

MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類(lèi)似json的bson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類(lèi)型。

Mongo最大的特點(diǎn)是它支持的查詢語(yǔ)言非常強(qiáng)大,其語(yǔ)法有點(diǎn)類(lèi)似于面向?qū)ο蟮牟樵冋Z(yǔ)言,幾乎可以實(shí)現(xiàn)類(lèi)似關(guān)系數(shù)據(jù)庫(kù)單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。

擴(kuò)展資料:

對(duì)于NoSQL并沒(méi)有一個(gè)明確的范圍和定義,但是他們都普遍存在下面一些共同特征:

一、易擴(kuò)展

NoSQL數(shù)據(jù)庫(kù)種類(lèi)繁多,但是一個(gè)共同的特點(diǎn)都是去掉關(guān)系數(shù)據(jù)庫(kù)的關(guān)系型特性。數(shù)據(jù)之間無(wú)關(guān)系,這樣就非常容易擴(kuò)展。無(wú)形之間,在架構(gòu)的層面上帶來(lái)了可擴(kuò)展的能力。

二、大數(shù)據(jù)量,高性能

NoSQL數(shù)據(jù)庫(kù)都具有非常高的讀寫(xiě)性能,尤其在大數(shù)據(jù)量下,同樣表現(xiàn)優(yōu)秀。這得益于它的無(wú)關(guān)系性,數(shù)據(jù)庫(kù)的結(jié)構(gòu)簡(jiǎn)單。一般MySQL使用Query Cache。NoSQL的Cache是記錄級(jí)的,是一種細(xì)粒度的Cache,所以NoSQL在這個(gè)層面上來(lái)說(shuō)性能就要高很多。

三、靈活的數(shù)據(jù)模型

NoSQL無(wú)須事先為要存儲(chǔ)的數(shù)據(jù)建立字段,隨時(shí)可以存儲(chǔ)自定義的數(shù)據(jù)格式。而在關(guān)系數(shù)據(jù)庫(kù)里,增刪字段是一件非常麻煩的事情。如果是非常大數(shù)據(jù)量的表,增加字段簡(jiǎn)直就是——個(gè)噩夢(mèng)。這點(diǎn)在大數(shù)據(jù)量的Web2.0時(shí)代尤其明顯。

四、高可用

NoSQL在不太影響性能的情況,就可以方便地實(shí)現(xiàn)高可用的架構(gòu)。比如Cassandra、HBase模型,通過(guò)復(fù)制模型也能實(shí)現(xiàn)高可用。

參考資料來(lái)源:百度百科-NoSQL

選擇哪種nosql數(shù)據(jù)庫(kù)

NoSQL不像傳統(tǒng)關(guān)系型庫(kù)那樣有統(tǒng)一的標(biāo)準(zhǔn),也不具有普適性。所以要根據(jù)應(yīng)用和數(shù)據(jù)的存取特征來(lái)選擇適合的NoSQL。

如果以前沒(méi)有接觸過(guò)NoSQL,MongoDB是一個(gè)比較好的選擇,他支持的所以和查詢能力是所有NoSQL中最強(qiáng)大的,缺點(diǎn)是索引的成本和文檔大小限制。

如果是使用Hadoop大數(shù)據(jù)分析,數(shù)據(jù)基本上不存在修改,只是插入和查詢,并且需要配合Hadoop的MR任務(wù),HBase會(huì)是很好的選擇。

如果要求有很強(qiáng)的擴(kuò)展能力,高并發(fā)讀寫(xiě)和維護(hù)方便,Casaandra則是不錯(cuò)的選擇。

當(dāng)然除了上面三個(gè)流行的NoSQL,還有很多優(yōu)秀的NoSQL數(shù)據(jù)庫(kù),而且他們都有各自擅長(zhǎng)領(lǐng)域,所以需要了解你們產(chǎn)品自身的特點(diǎn)然后分析選擇哪種才是最適合的,往往在大型系統(tǒng)中不是單一的數(shù)據(jù)庫(kù),而是使用多種數(shù)據(jù)庫(kù)組合。

nosql數(shù)據(jù)庫(kù)的四種類(lèi)型

nosql數(shù)據(jù)庫(kù)的四種類(lèi)型如下:

1.key-value鍵值存儲(chǔ)數(shù)據(jù)庫(kù):

相關(guān)產(chǎn)品: Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached.

主要應(yīng)用: 內(nèi)容緩存,處理大量數(shù)據(jù)的高負(fù)載訪問(wèn),也用于系統(tǒng)日志。

優(yōu)點(diǎn):查找速度快,大量操作時(shí)性能高。

2.列存儲(chǔ)數(shù)據(jù)庫(kù):

相關(guān)產(chǎn)品: BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS.

主要應(yīng)用: 分布式數(shù)據(jù)的儲(chǔ)存與管理。

優(yōu)點(diǎn):查找速度快,可擴(kuò)展性強(qiáng),容易進(jìn)行分布式擴(kuò)展。

缺點(diǎn):功能相對(duì)局限。

3.文檔型數(shù)據(jù)庫(kù)

相關(guān)產(chǎn)品:MongoDB、CouchDB、ThruDB、CloudKit、Perservere、Jackrabbit.

主要應(yīng)用: web應(yīng)用,管理面向文檔的數(shù)據(jù)或者類(lèi)似的半結(jié)構(gòu)化數(shù)據(jù)。

優(yōu)點(diǎn):數(shù)據(jù)結(jié)構(gòu)靈活,表結(jié)構(gòu)可變,復(fù)雜性低。

缺點(diǎn):查詢效率低,且缺乏統(tǒng)一的查詢語(yǔ)言。

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

相關(guān)產(chǎn)品: Neo4J、OrientDB、InfoGrid、GraphDB.

主要應(yīng)用: 復(fù)雜,互連接,低結(jié)構(gòu)化的圖結(jié)構(gòu)場(chǎng)合, 專注構(gòu)建關(guān)系圖譜。

優(yōu)點(diǎn): 利用圖結(jié)構(gòu)相關(guān)算法, 可用于構(gòu)建復(fù)雜的關(guān)系圖譜。

缺點(diǎn): 復(fù)雜度高。

如何選擇NoSQL數(shù)據(jù)庫(kù)

NoSQL,指的是非關(guān)系型的數(shù)據(jù)庫(kù)。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的

SNS類(lèi)型的web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問(wèn)題,而非關(guān)系型的數(shù)據(jù)庫(kù)則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。

NoSQL(NoSQL

= Not Only SQL

),意即“不僅僅是SQL”,是一項(xiàng)全新的數(shù)據(jù)庫(kù)革命性運(yùn)動(dòng),早期就有人提出,發(fā)展至2009年趨勢(shì)越發(fā)高漲。NoSQL的擁護(hù)者們提倡運(yùn)用非關(guān)系型的數(shù)

據(jù)存儲(chǔ),相對(duì)于鋪天蓋地的關(guān)系型數(shù)據(jù)庫(kù)運(yùn)用,這一概念無(wú)疑是一種全新的思維的注入。

從這一新興技術(shù)中選擇一款正確的NoSQL數(shù)據(jù)庫(kù)是非常具有挑戰(zhàn)性的。比一下網(wǎng)建議在選擇時(shí)考慮以下因素:

并發(fā)控制

發(fā)控制指的是當(dāng)多個(gè)用戶同時(shí)更新運(yùn)行時(shí),用于保護(hù)數(shù)據(jù)庫(kù)完整性的各種技術(shù)。并發(fā)機(jī)制不正確可能導(dǎo)致臟讀、幻讀和不可重復(fù)讀等此類(lèi)問(wèn)題。并發(fā)控制的目的是保

證一個(gè)用戶的工作不會(huì)對(duì)另一個(gè)用戶的工作產(chǎn)生不合理的影響。在某些情況下,這些措施保證了當(dāng)用戶和其他用戶一起操作時(shí),所得的結(jié)果和她單獨(dú)操作時(shí)的結(jié)果是

一樣的。在另一些情況下,這表示用戶的工作按預(yù)定的方式受其他用戶的影響。

封鎖

就是事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象(例如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請(qǐng)求,對(duì)其加鎖。加鎖后事務(wù)T就對(duì)該數(shù)據(jù)對(duì)象有了一定的控制,在事務(wù)T釋放它的鎖之前,其它的事務(wù)不能更新此數(shù)據(jù)對(duì)象。

封鎖是一次只允許一個(gè)用戶讀取或修改的一種機(jī)制,是實(shí)現(xiàn)并發(fā)控制的一個(gè)非常重要的技術(shù)。

MVCC

Multi-Version Concurrency Control多版本并發(fā)控制,維持一個(gè)數(shù)據(jù)的多個(gè)版本使讀寫(xiě)操作沒(méi)有沖突。MVCC優(yōu)化了數(shù)據(jù)庫(kù)并發(fā)系統(tǒng),使系統(tǒng)在有大量并發(fā)用戶時(shí)得到最高的性能,并且可以不用關(guān)閉服務(wù)器就直接進(jìn)行熱備份。

ACID

數(shù)據(jù)庫(kù)事務(wù)正確執(zhí)行的四個(gè)基本要素的縮寫(xiě)。包含:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久

性(Durability)。一個(gè)支持事務(wù)(Transaction)的數(shù)據(jù)庫(kù)系統(tǒng),必需要具有這四種特性,否則在事務(wù)過(guò)程(Transaction

processing)當(dāng)中無(wú)法保證數(shù)據(jù)的正確性,交易過(guò)程極可能達(dá)不到交易方的要求。

None

一些系統(tǒng)不提供原子性。

鏡像

數(shù)據(jù)庫(kù)鏡像是DBMS根據(jù)DBA的要求,自動(dòng)把整個(gè)數(shù)據(jù)庫(kù)或其中的關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)磁盤(pán)上,每當(dāng)主數(shù)據(jù)庫(kù)更新時(shí),DBMS會(huì)自動(dòng)把更新后的數(shù)據(jù)復(fù)制過(guò)去,即DBMS自動(dòng)保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性。

鏡像分為同步和異步。

數(shù)據(jù)存儲(chǔ)

指的是數(shù)據(jù)的物理特性怎樣被存儲(chǔ)在數(shù)據(jù)庫(kù)中。

磁盤(pán) 數(shù)據(jù)被存儲(chǔ)在硬盤(pán)驅(qū)動(dòng)器里;

GFS或谷歌文件系統(tǒng)是一個(gè)由谷歌開(kāi)發(fā)的專有的分布式文件系統(tǒng);

Hadoop是Apache軟件框架,免費(fèi)許可下支持?jǐn)?shù)據(jù)密集型分布式應(yīng)用程序;

RAM隨機(jī)存儲(chǔ)器;

插件 可以添加外部插件;

Amazon S3通過(guò)Web服務(wù)接口提供存儲(chǔ);

BDB:BDB

全稱是 “Berkeley DB”,它是MySQL具有事務(wù)能力的表類(lèi)型,由Sleepycat

Software開(kāi)發(fā)。BDB表類(lèi)型提供了MySQL用戶長(zhǎng)久期盼的功能,即事務(wù)控制能力。在任何RDBMS中,事務(wù)控制能力都是一種極其重要和寶貴的功

能。事務(wù)控制能力使得我們能夠確保一組命令確實(shí)已經(jīng)全部執(zhí)行成功,或者確保當(dāng)任何一個(gè)命令出現(xiàn)錯(cuò)誤時(shí)所有命令的執(zhí)行結(jié)果均被退回。

實(shí)現(xiàn)語(yǔ)言

實(shí)現(xiàn)語(yǔ)言會(huì)影響數(shù)據(jù)庫(kù)的發(fā)展速度。典型的NoSQL數(shù)據(jù)庫(kù)是用低級(jí)語(yǔ)言如C / C + +編寫(xiě)的。另一方面,那些更高層次的語(yǔ)言如Java,使自定義更容易。

實(shí)現(xiàn)語(yǔ)言有:C, C++, Erlang, Java, Python

特性

考慮下列哪一個(gè)特點(diǎn)對(duì)你的數(shù)據(jù)庫(kù)是最重要的:

持久性

可用性

一致性

分區(qū)容忍性

證書(shū)類(lèi)型

下面這些許可證是一個(gè)不同的開(kāi)放源碼許可的形式:

GPL:通用公共許可證

BSD:伯克利軟件分發(fā)

MPL:Mozilla公共許可證

EPL:Eclipse公共許可證

IDPL:最初的開(kāi)發(fā)者的公共許可證

LGPL:較寬松通用公共許可證

存儲(chǔ)類(lèi)型

存儲(chǔ)類(lèi)型是NoSQL數(shù)據(jù)庫(kù)最大的不同,是決定使用哪款數(shù)據(jù)庫(kù)的一個(gè)首要指標(biāo)。

關(guān)鍵字:支持get、put和刪除操作

按列存儲(chǔ):相對(duì)于傳統(tǒng)的按行存儲(chǔ),數(shù)據(jù)集成容易多了

面向文件系統(tǒng):存儲(chǔ)像是JSON或XML這樣的結(jié)構(gòu)化文件,很容易就能從面向?qū)ο筌浖蝎@取數(shù)據(jù)。

什么是NoSQL數(shù)據(jù)庫(kù)?

“NoSQL,指的是非關(guān)系型的數(shù)據(jù)庫(kù)。NoSQL有時(shí)也稱作Not Only SQL的縮寫(xiě),是對(duì)不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)管理系統(tǒng)的統(tǒng)稱。NoSQL用于超大規(guī)模數(shù)據(jù)的存儲(chǔ)。這些類(lèi)型的數(shù)據(jù)存儲(chǔ)不需要固定的模式,無(wú)需多余操作就可以橫向擴(kuò)展?!?/p>

哪個(gè)屬于NoSQL數(shù)據(jù)庫(kù)

1、鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)

這一類(lèi)數(shù)據(jù)庫(kù)主要會(huì)使用到一個(gè)哈希表,這個(gè)表中有一個(gè)特定的鍵和一個(gè)指針指向特定的數(shù)據(jù)。Key/value模型對(duì)于IT系統(tǒng)來(lái)說(shuō)的優(yōu)勢(shì)在于簡(jiǎn)單、易部署。

但是如果數(shù)據(jù)庫(kù)管理員(DBA)只對(duì)部分值進(jìn)行查詢或更新的時(shí)候,Key/value就顯得效率低下了。舉例如:Tokyo Cabinet/Tyrant,Redis,Voldemort,Oracle BDB。

2、列存儲(chǔ)數(shù)據(jù)庫(kù)

這部分?jǐn)?shù)據(jù)庫(kù)通常用來(lái)應(yīng)對(duì)分布式存儲(chǔ)的海量數(shù)據(jù)。鍵仍然存在,但是它們的特點(diǎn)是指向了多個(gè)列。這些列是由列家族來(lái)安排的。如:Cassandra,HBase,Riak。

3、文檔型數(shù)據(jù)庫(kù)

文檔型數(shù)據(jù)庫(kù)的靈感是來(lái)自于Lotus Notes辦公軟件的,而且它同第一種鍵值存儲(chǔ)相類(lèi)似。該類(lèi)型的數(shù)據(jù)模型是版本化的文檔,半結(jié)構(gòu)化的文檔以特定的格式存儲(chǔ),比如JSON。

文檔型數(shù)據(jù)庫(kù)可以看作是鍵值數(shù)據(jù)庫(kù)的升級(jí)版,允許之間嵌套鍵值,在處理網(wǎng)頁(yè)等復(fù)雜數(shù)據(jù)時(shí),文檔型數(shù)據(jù)庫(kù)比傳統(tǒng)鍵值數(shù)據(jù)庫(kù)的查詢效率更高。如:CouchDB,MongoDb,國(guó)內(nèi)也有文檔型數(shù)據(jù)庫(kù)SequoiaDB,已經(jīng)開(kāi)源。

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

圖形結(jié)構(gòu)的數(shù)據(jù)庫(kù)同其他行列以及剛性結(jié)構(gòu)的SQL數(shù)據(jù)庫(kù)不同,它是使用靈活的圖形模型,并且能夠擴(kuò)展到多個(gè)服務(wù)器上。

NoSQL數(shù)據(jù)庫(kù)沒(méi)有標(biāo)準(zhǔn)的查詢語(yǔ)言(SQL),因此進(jìn)行數(shù)據(jù)庫(kù)查詢需要制定數(shù)據(jù)模型。許多NoSQL數(shù)據(jù)庫(kù)都有REST式的數(shù)據(jù)接口或者查詢API。如:Neo4J,InfoGrid,Infinite Graph。

擴(kuò)展資料

NoSQL數(shù)據(jù)庫(kù)適合追求速度和可擴(kuò)展性、業(yè)務(wù)多變的應(yīng)用場(chǎng)景。對(duì)于非結(jié)構(gòu)化數(shù)據(jù)的處理更合適,如文章、評(píng)論,這些數(shù)據(jù)如全文搜索、機(jī)器學(xué)習(xí)通常只用于模糊處理,并不需要像結(jié)構(gòu)化數(shù)據(jù)一樣,進(jìn)行精確查詢,而且這類(lèi)數(shù)據(jù)的數(shù)據(jù)規(guī)模往往是海量的,數(shù)據(jù)規(guī)模的增長(zhǎng)往往也是不可能預(yù)期的。

而NoSQL數(shù)據(jù)庫(kù)的擴(kuò)展能力幾乎也是無(wú)限的,所以NoSQL數(shù)據(jù)庫(kù)可以很好地滿足這一類(lèi)數(shù)據(jù)的存儲(chǔ)。NoSQL數(shù)據(jù)庫(kù)利用key-value可以大量的獲取大量的非結(jié)構(gòu)化數(shù)據(jù),并且數(shù)據(jù)的獲取效率很高,但用它查詢結(jié)構(gòu)化數(shù)據(jù)效果就比較差。

參考資料來(lái)源:百度百科-數(shù)據(jù)庫(kù)

參考資料來(lái)源:百度百科-NoSQL

網(wǎng)頁(yè)標(biāo)題:哪個(gè)選項(xiàng)nosql數(shù)據(jù)庫(kù),nosql選擇
本文來(lái)源:http://muchs.cn/article26/hcgecg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、服務(wù)器托管、用戶體驗(yàn)定制網(wǎng)站、標(biāo)簽優(yōu)化、網(wǎng)站策劃

廣告

聲明:本網(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)站建設(shè)