{eval=Array;=+count(Array);}

成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

問答專欄Q & A COLUMN

【必知必會】面對不同的業(yè)務(wù)場景,如何選擇NOSQL和SQL?

luqiuwenluqiuwen 回答0 收藏1
收藏問題

2條回答

yankeys

yankeys

回答于2022-06-28 14:33

NoSQL和SQL看上去很像,以至于不少人把兩者混為一談,其實這兩者完全是兩類東西,雖然在開發(fā)中經(jīng)??匆妰烧吲浜鲜褂?,但兩者的定位不同,服務(wù)場景也是不同的。

隨著NoSQL數(shù)據(jù)庫的興起,不少人覺得未來NoSQL會取代傳統(tǒng)的數(shù)據(jù)庫,也有人認為NoSQL和SQL最終會融合在一起。未來的事情不好猜測,但在這里我們可以分析下兩者的定位。

什么是NoSQL?什么是SQL?

1、NoSQL不能光看字面意思,不能理解為“沒有SQL”,其實它是“Not Only SQL”的簡稱,它是非關(guān)系型數(shù)據(jù)庫的統(tǒng)稱,它的特點就是:非關(guān)系型、半結(jié)構(gòu)化、分布式、無ACID特性。

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

2、SQL本意是指結(jié)構(gòu)化查詢語句,它其實是一種特殊的編程語言,是用于關(guān)系型數(shù)據(jù)庫的查詢語言。只不過現(xiàn)在很多不嚴(yán)謹(jǐn)?shù)拈_發(fā)者將SQL視為數(shù)據(jù)庫的統(tǒng)稱。

SQL數(shù)據(jù)庫代表有:MySQL、Orache、SQL Server。

NoSQL與SQL數(shù)據(jù)庫的各自特點

1、NoSQL數(shù)據(jù)庫

  • 存儲數(shù)據(jù)不需要特定的模式;

  • 使用類JSON格式的文檔(半結(jié)構(gòu)化)來存儲鍵值對;

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

NoSQL數(shù)據(jù)庫更適合存儲非結(jié)構(gòu)化數(shù)據(jù)、不確定需求的數(shù)據(jù),數(shù)據(jù)是碎片化的。數(shù)據(jù)一般是存儲在內(nèi)存中的(個別的支持持久化到硬盤上),操作速度極快。

2、SQL數(shù)據(jù)庫

  • 存儲數(shù)據(jù)前需明確定義字段模式;

  • 使用表來存儲結(jié)構(gòu)化的數(shù)據(jù);

  • 保證數(shù)據(jù)的事務(wù)性、一致性要求。

關(guān)系型數(shù)據(jù)庫更適合存儲結(jié)構(gòu)化數(shù)據(jù)、數(shù)據(jù)要求嚴(yán)謹(jǐn),數(shù)據(jù)模式是固定不變的。數(shù)據(jù)是存儲在硬盤上的,數(shù)據(jù)量過大時操作速度會受到影響。

NoSQL與SQL數(shù)據(jù)庫如何選擇?

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


以上就是我的觀點,對于這個問題大家是怎么看待的呢?歡迎在下方評論區(qū)交流 ~ 我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗,歡迎關(guān)注我了解更多科技知識!

評論0 贊同0
  •  加載中...
roland_reed

roland_reed

回答于2022-06-28 14:33

感謝邀請!

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

NOSQL是非關(guān)系型數(shù)據(jù)庫,通常是指沒有ACID的特性,沒有表結(jié)構(gòu),非關(guān)系型的,

SQL是大家所熟知的數(shù)據(jù)庫,由表構(gòu)成,數(shù)據(jù)嚴(yán)謹(jǐn)。

NOSQL的代表數(shù)據(jù)庫是Redis、mongdb。Redis大家都不陌生,通常作為一種熱緩存存在于項目過程中,Redis中是按照鍵值對進行存儲數(shù)據(jù)的,方便讀取與修改。緩存的目的就是用于減少與數(shù)據(jù)庫之間的交互過程。而Mongdb的話是一種Bson文檔存儲格式,mongdb存儲的時候插入刪除修改操作可以快速大批量的完成,通常作為接口間的緩存。

NOSQL的業(yè)務(wù)場景一般都是沒有嚴(yán)謹(jǐn)?shù)谋斫Y(jié)構(gòu),只是方便數(shù)據(jù)的插入修改,后期對數(shù)據(jù)存儲的表可能會進行修改。

而sql的代表數(shù)據(jù)庫就是MySQL、oracle等大型應(yīng)用型數(shù)據(jù)庫,這一類數(shù)據(jù)庫都有嚴(yán)謹(jǐn)?shù)谋斫Y(jié)構(gòu),一經(jīng)生成,修改表是很困難的,使用的業(yè)務(wù)場景就是大型數(shù)據(jù)存儲,保證事務(wù)一致性的進行。數(shù)據(jù)模式固定不變,數(shù)據(jù)庫更穩(wěn)定。



希望回答對您有所幫助。

我本人從事多年互聯(lián)網(wǎng)Java開發(fā),感興趣的朋友可以關(guān)注私聊,共同努力,共同進步。

謝謝!

評論0 贊同0
  •  加載中...

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<