本站真誠介紹香港這個「東方之珠」和「亞洲國際都會」

亞洲國際都會 asiasworldcity

Nosql和關係型數據庫的區別

(本文内容不代表本站观点。)
香港飛龍 Hong Kong HK Dragon
香港飛龍.online 官方授權發布的第4代「香港飛龍」標誌

本文内容:

1.存儲方式  關係型數據庫是表格式的,因此存儲在表的行和列中。他們之間很容易關聯協作存儲,提取數據很方便。而Nosql數據庫則與其相反,他是大塊的組合在一起。通常存儲在數據集中,就像文檔、鍵值對或者圖結構。2.存儲結構  關係型數據庫對應的是結構化數據,數據表都預先定義了結構(列的定義),結構描述了數據的形式和內容。這一點對數據建模至關重要,雖然預定義結構帶來了可靠性和穩定性,但是修改這些數據比較困難。而Nosql數據庫基於動態結構,使用與非結構化數據。因爲Nosql數據庫是動態結構,可以很容易適應數據類型和結構的變化。3.存儲規範  關係型數據庫的數據存儲爲了更高的規範性,把數據分割爲最小的關係表以避免重複,獲得精簡的空間利用。雖然管理起來很清晰,但是單個操作設計到多張表的時候,數據管理就顯得有點麻煩。而Nosql數據存儲在平面數據集中,數據經常可能會重複。單個數據庫很少被分隔開,而是存儲成了一箇整體,這樣整塊數據更加便於讀寫4.存儲擴展  這可能是兩者之間最大的區別,關係型數據庫是縱向擴展,也就是說想要提高處理能力,要使用速度更快的計算機。因爲數據存儲在關係表中,操作的性能瓶頸可能涉及到多箇表,需要通過提升計算機性能來克服。雖然有很大的擴展空間,但是最終會達到縱向擴展的上限。而Nosql數據庫是橫向擴展的,它的存儲天然就是分佈式的,可以通過給資源池添加更多的普通數據庫服務器來分擔負載。5.查詢方式  關係型數據庫通過結構化查詢語言來操作數據庫(就是我們通常說的SQL)。SQL支持數據庫CURD操作的功能非常強大,是業界的標準用法。而Nosql查詢以塊爲單元操作數據,使用的是非結構化查詢語言(UnQl),它是沒有標準的。關係型數據庫表中主鍵的概唸對應Nosql中存儲文檔的ID。關係型數據庫使用預定義優化方式(比如索引)來加快查詢操作,而Nosql更簡單更精確的數據訪問模式。6.事務  關係型數據庫遵循ACID規則(原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)),而Nosql數據庫遵循BASE原則(基本可用(BasicallyAvailble)、軟/柔性事務(Soft-state)、最終一致性(EventualConsistency))。由於關係型數據庫的數據強一致性,所以對事務的支持很好。關係型數據庫支持對事務原子性細粒度控制,並且易於回滾事務。而Nosql數據庫是在CAP(一致性、可用性、分區容忍度)中任選兩項,因爲基於節點的分佈式系統中,很難全部滿足,所以對事務的支持不是很好,雖然也可以使用事務,但是並不是Nosql的閃光點。7.性能  關係型數據庫爲了維護數據的一致性付出了巨大的代價,讀寫性能比較差。在面對高併發讀寫性能非常差,面對海量數據的時候效率非常低。而Nosql存儲的格式都是key-value類型的,並且存儲在內存中,非常容易存儲,而且對於數據的一致性是弱要求。Nosql無需sql的解析,提高了讀寫性能。8.授權方式  關係型數據庫通常有SQLServer,Mysql,Oracle。主流的Nosql數據庫有redis,memcache,MongoDb。大多數的關係型數據庫都是付費的並且價格昂貴,成本較大,而Nosql數據庫通常都是開源的。


(本文内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议(arbitration agreement)。

依据《伯尔尼公约》、香港、中国内地的法律规定,本站对部分文章享有对应的版权。

本站真诚介绍香港这个「东方之珠」和「亚洲国际都会」,香港和「东方之珠」和「亚洲国际都会」是本站的业务地点名称。

本网站是"非商业"(non-commercial),没有涉及商业利益或竞争。


2025-Jun-26 11:36am (UTC +8)
栏目列表