回覆列表
-
1 # 網路圈
-
2 # 演算法
作為一名IT從業人員,我來回答下這個問題。
NOSQL是非關係型資料庫,通常是指沒有ACID的特性,沒有表結構,非關係型的,
SQL是大家所熟知的資料庫,由表構成,資料嚴謹。
NOSQL的代表資料庫是Redis、mongdb。Redis大家都不陌生,通常作為一種熱快取存在於專案過程中,Redis中是按照鍵值對進行儲存資料的,方便讀取與修改。快取的目的就是用於減少與資料庫之間的互動過程。而Mongdb的話是一種Bson文件儲存格式,mongdb儲存的時候插入刪除修改操作可以快速大批次的完成,通常作為介面間的快取。
NOSQL的業務場景一般都是沒有嚴謹的表結構,只是方便資料的插入修改,後期對資料儲存的表可能會進行修改。
而sql的代表資料庫就是MySQL、oracle等大型應用型資料庫,這一類資料庫都有嚴謹的表結構,一經生成,修改表是很困難的,使用的業務場景就是大型資料儲存,保證事務一致性的進行。資料模式固定不變,資料庫更穩定。
我本人從事多年網際網路Java開發,感興趣的朋友可以關注私聊,共同努力,共同進步。
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則用來快取熱點資料,提升資料查詢和操作速度。