MySQL還是NoSQL:開源盛世下的資料庫該如何選擇

來源:互聯網
上載者:User

開來源資料領域被分成了兩派,NoSQL狂熱支援者喜歡發表長篇大論批評關聯式資料庫的局限性,MySQL愛好者則固執地扞衛關聯式資料庫——堅持讓資料整齊地存放在表中。

你肯定會認為這兩方決不可能和睦相處,但事實上,成千上萬的公司一直都在努力將關聯式和非關聯式資料庫結合起來,而且很多年前就有這樣的嘗試了。

但新技術的發展往往和過去的技術對立。 當NoSQL發展起來時,光這個名字聽起來就像是要宣告關係資料庫的終結,但這是不可能的,至少不會這麼快。

Craigslist的成功

Craigslist公司無縫集成結構化和非結構化資料檢索是個很好的例子。 過去,該公司一直用MySQL處理頻繁的任務和分類廣告。

儘管工作量很大,MySQL還是能輕鬆地完成這項任務。 只有當存檔資料達到超紀錄的級別時,才會產生對NoSQL的需求。 由於管理的要求,Craigslist必須將所有歷史資料存檔——即使是SXSW期間為奧斯丁那昏暗、高價的公寓所做的廣告也得存檔。

如果一個關聯式資料庫依靠資料之間的邏輯,那前端架構的更改必然會影響到存檔資料。 這是一個高風險、高時耗的過程,而且它會造成停機時間損失。 想像一下去更新帶有10億條記錄的MySQL伺服器集群!

Craigslist發現需要以離散方式處理兩類資料——當前資料和歷史資料。 Craigslist或許已經轉而使用MongoDB説明應對資料的增長,但是與MySQL一起運行的NoSQL也從沒有出現過問題,這說明MySQL和NoSQL可以很好的結合。

開源同盟

越來越多的應用開發商和託管服務提供者認識到NoSQL和MySQL一直是開源同盟,沒有因資料庫類型不同而成為不相往來的仇敵。 歸於一點,資料就是資料,它應該用來為應用程式和使用者服務,不應該受到後端資料庫的限制。

越來越多的Rackspace客戶發現自己面臨和Craigslist同樣的處境。 當關聯式資料庫涵蓋所有他們的資料領域時,他們構建了自己的資料結構,而現在他們已經進入應用時代了。

達到100萬客戶原先需要數年時間,現在只需要幾周就可以了,而且社會共用和即時查詢對資料提出了新的要求——也需要支援這些資料的基礎設施,這一系列變化使他們面臨的資料量達到了每月10億之巨。

他們不一定要挖掘MySQL資料庫,但他們需要增加資料引擎。 為了增加資料庫的速度和靈活性,MongoDB、Cassandra或者Redis(這類資料庫)會被納入資料結構中。 但這些開源資料庫不太可能用於存儲使用者機密資訊或者財務記錄,因為這些內容必須始終保持一致性。

目前,技術公司在聘請傳統關聯式資料庫管理員同時,組建一個NoSQL應用開發團隊也很常見。 有時,基於關聯式資料庫和非關聯式資料庫的同一個應用甚至可以在Web層進行通信。

過去的資料庫管理員必須和新一代使用NoSQL程式設計的開發人員合作,進行有關部署和體系結構的決策(也許這些資料庫管理員和開發人員也能成為朋友)。

可能這類公司連資料庫管理員也沒有,它們將所有的應用和資料層外包給託管服務供應商,這樣的話,它們就得充分利用深厚的專業知識和團隊合作,才能跨越SQL與NoSQL之間的鴻溝。

選擇其中一個? 還是兩者都要?

應用程式是否應該與關聯式資料庫或NoSQL(也許是兩者)相一致,當然,這得基於被生成或被檢索資料的性質。 和大多數科技領域的事物一樣,做決定時要折中考慮。

如果規模和性能比24小時的資料一致性更重要,那NoSQL是一個理想的選擇 (NoSQL依賴于BASE模型——基本可用、軟狀態、最終一致性)。

但如果要保證到「始終一致」,尤其是對於機密資訊和財務資訊,那麼MySQL很可能是最優的選擇(MySQL依賴于ACID模型——原子性、一致性、獨立性和耐久性)。

作為開源資料庫,無論是關聯式資料庫還是非關聯式資料庫都在不斷成熟,我們可以期待還會有一大批基於ACID和BASE模型的新應用產生。

暫且把它稱為混合方案。 有時這些應用程式的設計需要認真地權衡利弊,有時還能意外的得到發展,做出一系列調整以適應不斷變化的資料需求,畢竟,誰能預測到今天社會共用資料的大規模增加(即使是在五年前)?

像往常一樣,開發人員處於這種創新的最前沿,他們促使託管服務提供者將這兩個數據領域結合到一起。 在必要時候,他們還會對開來源資料技術進行修正。

比如,在Oracle佔有了MySQL後,MySQL有閉源的風險,基於MySQL的MariaDB很好的替代了MySQL。 開發者社區要求其開源工具完全透明,包括開放對測試案例bug修復的許可權。

此混合方案在2014年將繼續發展,託管公司也會提供更好的支援。 在媒體上,我們就不會再說「要麼關聯式資料庫,要麼非關聯式資料庫」這樣的話了。

這和混合雲領域所用方法是類似的。 專用硬體有著優越的性能,而公共雲有很好的可擴充性,結合兩者優點可以帶來更大的靈活性,產生最合適的解決方案,這才是解決問題的最優辦法。

畢竟,資料收集和解釋的最終目標是捕獲這個瞬息萬變世界發生的每一條資訊。 資料,無論來自何處,都只是一個視窗,真正重要的是透過這個視窗看到的景象。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.