NoSql理解+传统关系型数据库ACID+Nosql的CAP+BASE的理解
1)什么是Nosql
NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,
泛指非關系型的數據庫。隨著互聯網web2.0網站的興起,傳統的關系數據庫在應付web2.0網站,特別是超大規模和高并發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,而非關系型的數據庫則由于其本身的特點得到了非常迅速的發展。NoSQL數據庫的產生就是為了解決大規模數據集合多重數據種類帶來的挑戰,尤其是大數據應用難題,包括超大規模數據的存儲。
(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數據)。這些類型的數據存儲不需要固定的模式,無需多余操作就可以橫向擴展
2)特點
3)Nosql數據庫的四大分類
1.介紹
2.四者對比
4)在分布式數據庫中CAP原理CAP+BASE
1.傳統的ACID分別是什么
A (Atomicity) 原子性C (Consistency) 一致性I (Isolation) 獨立性D (Durability) 持久性2.CAP(重點)(Nosql CAP最多只能選擇兩個)
C:Consistency(強一致性)A:Availability(可用性)P:Partition tolerance(分區容錯性)CAP理論的核心是:一個分布式系統不可能同時很好的滿足一致性,可用性和分區容錯性這三個需求,最多只能同時較好的滿足兩個。
因此,根據 CAP 原理將 NoSQL 數據庫分成了滿足 CA 原則、滿足 CP 原則和滿足 AP 原則三 大類:
CA - 單點集群,滿足一致性,可用性的系統,通常在可擴展性上不太強大。
CP - 滿足一致性,分區容忍必的系統,通常性能不是特別高。
AP - 滿足可用性,分區容忍性的系統,通常可能對一致性要求低一些。
3.CAP的3進2(重點)
CAP理論就是說在分布式存儲系統中,最多只能實現上面的兩點。
而由于當前的網絡硬件肯定會出現延遲丟包等問題,所以
分區容忍性是我們必須需要實現的。
所以我們只能在一致性和可用性之間進行權衡,沒有NoSQL系統能同時保證這三點。
=======================================================================================================================
C:強一致性 A:高可用性 P:分布式容忍性
CA 傳統Oracle數據庫
AP 大多數網站架構的選擇
CP Redis、Mongodb
注意:分布式架構的時候必須做出取舍。
一致性和可用性之間取一個平衡。多余大多數web應用,其實并不需要強一致性。
因此犧牲C換取P,這是目前分布式數據庫產品的方向
注意:分布式架構的時候必須做出取舍。
一致性和可用性之間取一個平衡。多余大多數web應用,其實并不需要強一致性。
因此犧牲C換取P,這是目前分布式數據庫產品的方向
=================================================================================================
一致性與可用性的決擇
對于web2.0網站來說,關系數據庫的很多主要特性卻往往無用武之地
數據庫事務一致性需求
很多web實時系統并不要求嚴格的數據庫事務,對讀一致性的要求很低, 有些場合對寫一致性要求并不高。允許實現最終一致性。
數據庫的寫實時性和讀實時性需求
對關系數據庫來說,插入一條數據之后立刻查詢,是肯定可以讀出來這條數據的,但是對于很多web應用來說,并不要求這么高的實時性,比方說發一條消息之 后,過幾秒乃至十幾秒之后,我的訂閱者才看到這條動態是完全可以接受的。
對復雜的SQL查詢,特別是多表關聯查詢的需求
任何大數據量的web系統,都非常忌諱多個大表的關聯查詢,以及復雜的數據分析類型的報表查詢,特別是SNS類型的網站,從需求以及產品設計角 度,就避免了這種情況的產生。往往更多的只是單表的主鍵查詢,以及單表的簡單條件分頁查詢,SQL的功能被極大的弱化了。
4.什么是BASE?
BASE就是為了解決關系數據庫強一致性引起的問題而引起的可用性降低而提出的解決方案。
BASE其實是下面三個術語的縮寫:
基本可用(Basically Available)
軟狀態(Soft state)
最終一致(Eventually consistent)(目的是最終一致性)
它的思想是通過讓系統放松對某一時刻數據一致性的要求來換取系統整體伸縮性和性能上改觀。為什么這么說呢,緣由就在于大型系統往往由于地域分布和極高性能的要求,不可能采用分布式事務來完成這些指標,要想獲得這些指標,我們必須采用另外一種方式來完成,這里BASE就是解決這個問題的辦法
總結
以上是生活随笔為你收集整理的NoSql理解+传统关系型数据库ACID+Nosql的CAP+BASE的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018年交行信用卡年费标准 交行信用卡
- 下一篇: Eclipse 通过 JDBC 连接 S