為什麼需要選用NoSQL?

來源:互聯網
上載者:User

為什麼需要選用NoSQL?

關係型資料庫已經成為電腦文化的一部分,因其很多優點:

擷取持久化資料

可以將資料持久化到磁碟,並且很容易訪問到其中一小塊資料。

並發

關係型資料庫中有“事務”的概念,有效保障了多個程式訪問同一份資料時的一致性,事務的ACID(原子性、一致性、隔離性、持久性)特性相信大家都了熟於心了。

整合

不同Team Dev,不同平台,不同語言的應用程式可以共用同一份資料

標準的關聯式模式

之所以能夠很方便地達到上述目的,是因為提供了近乎標準的、統一的關聯式模式

但是兩個原因使得關係型資料庫顯得力不從心:

 阻抗失諧

記憶體中的資料結構和關聯式模式相差甚遠,這就是所謂的“阻抗失諧(impedance mismatch)”。像“嵌套記錄”、“列表”等記憶體結構需要先轉換為“關係”和“元組”才能進行儲存。

蜂擁而來的叢集

隨著網路規模急劇增加,硬體計算資源“橫向拓展”已經成為必然,叢集已經成為趨勢,然而關係型資料庫並不是設計給叢集用的,要麼採用“共用磁碟子系統”來支撐叢集上的檔案系統(磁碟會成為瓶頸),要麼按照邏輯對資料庫進行分區,這樣雖然能夠將負載分散到多個伺服器,但是應用程式必須控制所有分區,而且事務、一致性等無法跨越分區進行。

至此,NoSQL誕生。

  • 為叢集而生

基本上可以認為NoSQL是為叢集而生的(少數的資料庫不是這樣),當待處理的資料量很大,或者以較快速度增長,同時對資料訪問效率要求很高,考慮NoSQL。

  • 阻抗失諧

記住在叢集上處理“大資料”並不是NoSQL唯一的原因,阻抗失諧也是另一大關鍵因素,NoSQL資料庫中沒有傳統關係型資料庫中的“模式”的概念,無需事先定義好資料存放區模型,可以隨意添加欄位,非常適合於處理不規則資料和自訂欄位,當希望以更加方便友好的資料互動方式來提高應用程式開發效率時,考慮NoSQL。
 

相關文章

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.