HBase vs. MongoDB vs. MySQL vs. Oracle vs. Redis厕宗,三大主流開源 NoSQL 數(shù)據(jù)庫的 PK 兩大主流傳統(tǒng) SQL 數(shù)據(jù)庫

from: http://blog.csdn.net/defonds/article/details/48471087
HBase vs. MongoDB vs. MySQL vs. Oracle vs. Redis铣口,三大主流開源 NoSQL 數(shù)據(jù)庫的 PK 兩大主流傳統(tǒng) SQL 數(shù)據(jù)庫

附錄一:普及度等級趨勢圖

DB-Engines Ranking - Trend of HBase vs. MongoDB vs. MySQL vs. Oracle vs. Redis Popularity.png

附錄二:兩張圖告訴你如何在 SQL运怖、NewSQL卖子、NoSQL 之間進(jìn)行取舍
圖一:Do I Need SQL or Hadoop?
圖一:Do I Need SQL or Hadoop?

圖二:SQL vs. NewSQL vs. NoSQL


圖二:SQL vs. NewSQL vs. NoSQL

附錄三:Redis 之父 Salvatore Sanfilippo 訪談節(jié)選

Redis 是一個開源的抬虽、高級鍵值數(shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu)服務(wù)程序官觅,其中鍵可以保存字符串、散列阐污、列表休涤、集合和有序集合。
Redis 的內(nèi)核是用標(biāo)準(zhǔn) ANSI C 寫成的笛辟,基于一種事件模型功氨。
非阻塞復(fù)制是 Redis 的設(shè)計目標(biāo)。
Redis 中的復(fù)制是異步的手幢。
目前已經(jīng)為許多語言(包括大部分常用語言)提供了 Redis 庫捷凄。
C client 是唯一官方支持的包裝。
Redis Pub/Sub 對實時應(yīng)用非常適合围来。
Redis 用戶有的將它用作數(shù)據(jù)庫跺涤,有的用作消息總線匈睁,也有的用來做 cache

附錄四:NoSQL 數(shù)據(jù)庫的類型一覽表

NoSQL 數(shù)據(jù)庫的類型一覽表
數(shù)據(jù)庫類型
描述
主流產(chǎn)品
有誰在用
適用場景
不適用場景

鍵值(Key-Value)數(shù)據(jù)庫
鍵值數(shù)據(jù)庫就像在傳統(tǒng)語言中使用的哈希表桶错。你可以通過 key 來添加航唆、查詢或者刪除數(shù)據(jù),鑒于使用主鍵訪問牛曹,所以會獲得不錯的性能及擴展性佛点。
Riak醇滥、Redis黎比、Memcached、Amazon’s Dynamo鸳玩、Project Voldemort
GitHub (Riak)阅虫、BestBuy (Riak)、Twitter (Redis和Memcached)不跟、StackOverFlow (Redis)颓帝、 Instagram (Redis)、Youtube (Memcached)窝革、Wikipedia(Memcached)
儲存用戶信息购城,比如會話、配置文件虐译、參數(shù)瘪板、購物車等等。這些信息一般都和 ID(鍵)掛鉤漆诽,這種情景下鍵值數(shù)據(jù)庫是個很好的選擇侮攀。

  1. 取代通過鍵查詢,而是通過值來查詢厢拭。Key-Value 數(shù)據(jù)庫中根本沒有通過值查詢的途徑兰英。2. 需要儲存數(shù)據(jù)之間的關(guān)系。在 Key-Value 數(shù)據(jù)庫中不能通過兩個或以上的鍵來關(guān)聯(lián)數(shù)據(jù)供鸠。3. 事務(wù)的支持畦贸。在 Key-Value 數(shù)據(jù)庫中故障產(chǎn)生時不可以進(jìn)行回滾。

面向文檔(Document-Oriented)數(shù)據(jù)庫
面向文檔數(shù)據(jù)庫會將數(shù)據(jù)以文檔的形式儲存楞捂。每個文檔都是自包含的數(shù)據(jù)單元家制,是一系列數(shù)據(jù)項的集合。每個數(shù)據(jù)項都有一個名稱與對應(yīng)的值泡一,值既可以是簡單的數(shù)據(jù)類型颤殴,如字符串、數(shù)字和日期等鼻忠;也可以是復(fù)雜的類型涵但,如有序列表和關(guān)聯(lián)對象杈绸。數(shù)據(jù)存儲的最小單位是文檔,同一個表中存儲的文檔屬性可以是不同的矮瘟,數(shù)據(jù)可以使用 XML瞳脓、JSON 或者 JSONB 等多種形式存儲。
MongoDB澈侠、CouchDB劫侧、RavenDB
SAP (MongoDB)、Codecademy (MongoDB)哨啃、Foursquare (MongoDB)烧栋、NBC News (RavenDB)

  1. 日志。企業(yè)環(huán)境下拳球,每個應(yīng)用程序都有不同的日志信息审姓。Document-Oriented 數(shù)據(jù)庫并沒有固定的模式,所以我們可以使用它儲存不同的信息祝峻。2. 分析魔吐。鑒于它的弱模式結(jié)構(gòu),不改變模式下就可以儲存不同的度量方法及添加新的度量莱找。
    在不同的文檔上添加事務(wù)酬姆。Document-Oriented 數(shù)據(jù)庫并不支持文檔間的事務(wù),如果對這方面有需求則不應(yīng)該選用這個解決方案奥溺。

列存儲(Wide Column Store/Column-Family)數(shù)據(jù)庫
列存儲數(shù)據(jù)庫將數(shù)據(jù)儲存在列族(column family)中辞色,一個列族存儲經(jīng)常被一起查詢的相關(guān)數(shù)據(jù)。舉個例子谚赎,如果我們有一個 Person 類淫僻,我們通常會一起查詢他們的姓名和年齡而不是薪資。這種情況下壶唤,姓名和年齡就會被放入一個列族中雳灵,而薪資則在另一個列族中。
Cassandra闸盔、HBase
Ebay (Cassandra)悯辙、Instagram (Cassandra)、NASA (Cassandra)迎吵、Twitter (Cassandra and HBase)躲撰、Facebook (HBase)、Yahoo!(HBase)

  1. 日志击费。因為我們可以將數(shù)據(jù)儲存在不同的列中拢蛋,每個應(yīng)用程序可以將信息寫入自己的列族中。2. 博客平臺蔫巩。我們儲存每個信息到不同的列族中谆棱。舉個例子快压,標(biāo)簽可以儲存在一個,類別可以在一個垃瞧,而文章則在另一個蔫劣。
  2. 如果我們需要 ACID 事務(wù)。Vassandra 就不支持事務(wù)个从。2. 原型設(shè)計脉幢。如果我們分析Cassandra 的數(shù)據(jù)結(jié)構(gòu),我們就會發(fā)現(xiàn)結(jié)構(gòu)是基于我們期望的數(shù)據(jù)查詢方式而定嗦锐。在模型設(shè)計之初嫌松,我們根本不可能去預(yù)測它的查詢方式,而一旦查詢方式改變意推,我們就必須重新設(shè)計列族豆瘫。

圖(Graph-Oriented)數(shù)據(jù)庫
圖數(shù)據(jù)庫允許我們將數(shù)據(jù)以圖的方式儲存珊蟀。實體會被作為頂點菊值,而實體之間的關(guān)系則會被作為邊。比如我們有三個實體育灸,Steve Jobs腻窒、Apple 和 Next,則會有兩個“Founded by”的邊將 Apple 和 Next 連接到 Steve Jobs磅崭。
Neo4J儿子、Infinite Graph、OrientDB
Adobe (Neo4J)砸喻、Cisco (Neo4J)柔逼、T-Mobile (Neo4J)

  1. 在一些關(guān)系性強的數(shù)據(jù)中2. 推薦引擎。如果我們將數(shù)據(jù)以圖的形式表現(xiàn)割岛,那么將會非常有益于推薦的制定
    不適合的數(shù)據(jù)模型愉适。圖數(shù)據(jù)庫的適用范圍很小,因為很少有操作涉及到整個圖癣漆。

參考資料

HBase vs. MongoDB vs. MySQL vs. Oracle vs. Redis Popularity
一網(wǎng)打盡當(dāng)下NoSQL類型维咸、適用場景及使用公司
Redis之父Salvatore Sanfilippo訪談
一張圖告訴你是需要 SQL 還是 Hadoop

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市惠爽,隨后出現(xiàn)的幾起案子癌蓖,更是在濱河造成了極大的恐慌,老刑警劉巖婚肆,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件租副,死亡現(xiàn)場離奇詭異,居然都是意外死亡较性,警方通過查閱死者的電腦和手機用僧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門讨越,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人永毅,你說我怎么就攤上這事把跨。” “怎么了沼死?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵着逐,是天一觀的道長。 經(jīng)常有香客問我意蛀,道長耸别,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任县钥,我火速辦了婚禮秀姐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘若贮。我一直安慰自己省有,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布谴麦。 她就那樣靜靜地躺著蠢沿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪匾效。 梳的紋絲不亂的頭發(fā)上舷蟀,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天,我揣著相機與錄音面哼,去河邊找鬼野宜。 笑死,一個胖子當(dāng)著我的面吹牛魔策,可吹牛的內(nèi)容都是我干的匈子。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼代乃,長吁一口氣:“原來是場噩夢啊……” “哼旬牲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起搁吓,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤桑阶,失蹤者是張志新(化名)和其女友劉穎身冀,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡霜医,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年睹簇,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡朗若,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出昌罩,到底是詐尸還是另有隱情哭懈,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布茎用,位于F島的核電站遣总,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏轨功。R本人自食惡果不足惜旭斥,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望古涧。 院中可真熱鬧垂券,春花似錦、人聲如沸羡滑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啄栓。三九已至娄帖,卻和暖如春也祠,著一層夾襖步出監(jiān)牢的瞬間昙楚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工诈嘿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留堪旧,地道東北人。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓奖亚,卻偏偏與公主長得像淳梦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子昔字,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容