{eval=Array;=+count(Array);}
NoSQL和SQL看上去很像,以至于不少人把兩者混為一談,其實(shí)這兩者完全是兩類東西,雖然在開(kāi)發(fā)中經(jīng)??匆?jiàn)兩者配合使用,但兩者的定位不同,服務(wù)場(chǎng)景也是不同的。
隨著NoSQL數(shù)據(jù)庫(kù)的興起,不少人覺(jué)得未來(lái)NoSQL會(huì)取代傳統(tǒng)的數(shù)據(jù)庫(kù),也有人認(rèn)為NoSQL和SQL最終會(huì)融合在一起。未來(lái)的事情不好猜測(cè),但在這里我們可以分析下兩者的定位。
1、NoSQL不能光看字面意思,不能理解為“沒(méi)有SQL”,其實(shí)它是“Not Only SQL”的簡(jiǎn)稱,它是非關(guān)系型數(shù)據(jù)庫(kù)的統(tǒng)稱,它的特點(diǎn)就是:非關(guān)系型、半結(jié)構(gòu)化、分布式、無(wú)ACID特性。
NoSQL代表有:Redis、MemCache、MongoDB等。
2、SQL本意是指結(jié)構(gòu)化查詢語(yǔ)句,它其實(shí)是一種特殊的編程語(yǔ)言,是用于關(guān)系型數(shù)據(jù)庫(kù)的查詢語(yǔ)言。只不過(guò)現(xiàn)在很多不嚴(yán)謹(jǐn)?shù)拈_(kāi)發(fā)者將SQL視為數(shù)據(jù)庫(kù)的統(tǒng)稱。
SQL數(shù)據(jù)庫(kù)代表有:MySQL、Orache、SQL Server。
1、NoSQL數(shù)據(jù)庫(kù)
存儲(chǔ)數(shù)據(jù)不需要特定的模式;
使用類JSON格式的文檔(半結(jié)構(gòu)化)來(lái)存儲(chǔ)鍵值對(duì);
沒(méi)有 原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)這4種特性。
2、SQL數(shù)據(jù)庫(kù)
存儲(chǔ)數(shù)據(jù)前需明確定義字段模式;
使用表來(lái)存儲(chǔ)結(jié)構(gòu)化的數(shù)據(jù);
保證數(shù)據(jù)的事務(wù)性、一致性要求。
關(guān)系型數(shù)據(jù)庫(kù)更適合存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)、數(shù)據(jù)要求嚴(yán)謹(jǐn),數(shù)據(jù)模式是固定不變的。數(shù)據(jù)是存儲(chǔ)在硬盤上的,數(shù)據(jù)量過(guò)大時(shí)操作速度會(huì)受到影響。
在開(kāi)頭時(shí)就提及NoSQL與SQL的爭(zhēng)議,我更傾向于說(shuō)未來(lái)NoSQL和SQL可能會(huì)融合在一起。在如今的技術(shù)架構(gòu)中我們通常也都是這樣去搭配使用的:SQL數(shù)據(jù)庫(kù)作為最終數(shù)據(jù)落地存儲(chǔ)方案,而NoSQL則用來(lái)緩存熱點(diǎn)數(shù)據(jù),提升數(shù)據(jù)查詢和操作速度。
以上就是我的觀點(diǎn),對(duì)于這個(gè)問(wèn)題大家是怎么看待的呢?歡迎在下方評(píng)論區(qū)交流 ~ 我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn),歡迎關(guān)注我了解更多科技知識(shí)!
感謝邀請(qǐng)!
作為一名IT從業(yè)人員,我來(lái)回答下這個(gè)問(wèn)題。
NOSQL是非關(guān)系型數(shù)據(jù)庫(kù),通常是指沒(méi)有ACID的特性,沒(méi)有表結(jié)構(gòu),非關(guān)系型的,
SQL是大家所熟知的數(shù)據(jù)庫(kù),由表構(gòu)成,數(shù)據(jù)嚴(yán)謹(jǐn)。
NOSQL的代表數(shù)據(jù)庫(kù)是Redis、mongdb。Redis大家都不陌生,通常作為一種熱緩存存在于項(xiàng)目過(guò)程中,Redis中是按照鍵值對(duì)進(jìn)行存儲(chǔ)數(shù)據(jù)的,方便讀取與修改。緩存的目的就是用于減少與數(shù)據(jù)庫(kù)之間的交互過(guò)程。而Mongdb的話是一種Bson文檔存儲(chǔ)格式,mongdb存儲(chǔ)的時(shí)候插入刪除修改操作可以快速大批量的完成,通常作為接口間的緩存。
NOSQL的業(yè)務(wù)場(chǎng)景一般都是沒(méi)有嚴(yán)謹(jǐn)?shù)谋斫Y(jié)構(gòu),只是方便數(shù)據(jù)的插入修改,后期對(duì)數(shù)據(jù)存儲(chǔ)的表可能會(huì)進(jìn)行修改。
而sql的代表數(shù)據(jù)庫(kù)就是MySQL、oracle等大型應(yīng)用型數(shù)據(jù)庫(kù),這一類數(shù)據(jù)庫(kù)都有嚴(yán)謹(jǐn)?shù)谋斫Y(jié)構(gòu),一經(jīng)生成,修改表是很困難的,使用的業(yè)務(wù)場(chǎng)景就是大型數(shù)據(jù)存儲(chǔ),保證事務(wù)一致性的進(jìn)行。數(shù)據(jù)模式固定不變,數(shù)據(jù)庫(kù)更穩(wěn)定。
希望回答對(duì)您有所幫助。
我本人從事多年互聯(lián)網(wǎng)Java開(kāi)發(fā),感興趣的朋友可以關(guān)注私聊,共同努力,共同進(jìn)步。
謝謝!
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答10
回答0
回答