回覆列表
  • 1 # 網路圈

    NoSQL和SQL看上去很像,以至於不少人把兩者混為一談,其實這兩者完全是兩類東西,雖然在開發中經常看見兩者配合使用,但兩者的定位不同,服務場景也是不同的。

    隨著NoSQL資料庫的興起,不少人覺得未來NoSQL會取代傳統的資料庫,也有人認為NoSQL和SQL最終會融合在一起。未來的事情不好猜測,但在這裡我們可以分析下兩者的定位。

    什麼是NoSQL?什麼是SQL?

    1、NoSQL不能光看字面意思,不能理解為“沒有SQL”,其實它是“Not Only SQL”的簡稱,它是非關係型資料庫的統稱,它的特點就是:非關係型、半結構化、分散式、無ACID特性。

    NoSQL代表有:Redis、MemCache、MongoDB等。

    2、SQL本意是指結構化查詢語句,它其實是一種特殊的程式語言,是用於關係型資料庫的查詢語言。只不過現在很多不嚴謹的開發者將SQL視為資料庫的統稱。

    SQL資料庫代表有:MySQL、Orache、SQL Server。

    NoSQL與SQL資料庫的各自特點

    1、NoSQL資料庫

    儲存資料不需要特定的模式;

    使用類JSON格式的文件(半結構化)來儲存鍵值對;

    沒有 原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、永續性(Durability)這4種特性。

    NoSQL資料庫更適合儲存非結構化資料、不確定需求的資料,資料是碎片化的。資料一般是儲存在記憶體中的(個別的支援持久化到硬碟上),操作速度極快。

    2、SQL資料庫

    儲存資料前需明確定義欄位模式;

    使用表來儲存結構化的資料;

    保證資料的事務性、一致性要求。

    關係型資料庫更適合儲存結構化資料、資料要求嚴謹,資料模式是固定不變的。資料是儲存在硬碟上的,資料量過大時操作速度會受到影響。

    NoSQL與SQL資料庫如何選擇?

    在開頭時就提及NoSQL與SQL的爭議,我更傾向於說未來NoSQL和SQL可能會融合在一起。在如今的技術架構中我們通常也都是這樣去搭配使用的:SQL資料庫作為最終資料落地儲存方案,而NoSQL則用來快取熱點資料,提升資料查詢和操作速度。

  • 2 # 演算法

    作為一名IT從業人員,我來回答下這個問題。

    NOSQL是非關係型資料庫,通常是指沒有ACID的特性,沒有表結構,非關係型的,

    SQL是大家所熟知的資料庫,由表構成,資料嚴謹。

    NOSQL的代表資料庫是Redis、mongdb。Redis大家都不陌生,通常作為一種熱快取存在於專案過程中,Redis中是按照鍵值對進行儲存資料的,方便讀取與修改。快取的目的就是用於減少與資料庫之間的互動過程。而Mongdb的話是一種Bson文件儲存格式,mongdb儲存的時候插入刪除修改操作可以快速大批次的完成,通常作為介面間的快取。

    NOSQL的業務場景一般都是沒有嚴謹的表結構,只是方便資料的插入修改,後期對資料儲存的表可能會進行修改。

    而sql的代表資料庫就是MySQL、oracle等大型應用型資料庫,這一類資料庫都有嚴謹的表結構,一經生成,修改表是很困難的,使用的業務場景就是大型資料儲存,保證事務一致性的進行。資料模式固定不變,資料庫更穩定。

    我本人從事多年網際網路Java開發,感興趣的朋友可以關注私聊,共同努力,共同進步。

  • 中秋節和大豐收的關聯?
  • 位元犬適合家養嗎?