NoSQL 數據庫因其功能性、易于開發性和可擴展性而廣受認可,它們越來越多地用于大數據和實時 Web 應用程序,在本文中,我們通過示例討論 NoSQL、何時使用 NoSQL 與 SQL 及其用例。
創新互聯公司長期為1000多家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為德江企業提供專業的網站制作、網站建設,德江網站改版等技術服務。擁有十多年豐富建站經驗和眾多成功案例,為您定制開發。
NoSQL是一種下一代數據庫管理系統 (DBMS)。NoSQL 數據庫具有靈活的模式,可用于構建具有大量數據和高負載的現代應用程序。
“NoSQL”一詞最初是由 Carlo Strozzi 在 1998 年創造的,盡管自 1960 年代后期以來就已經存在類似的數據庫。然而,NoSQL 的發展始于 2009 年初,并且發展迅速。
在處理大量數據時,任何關系數據庫管理系統 (RDBMS) 的響應時間都會變慢。為了解決這個問題,我們可以通過升級現有硬件來“擴大”信息系統,這非常昂貴。但是,NoSQL 可以更好地橫向擴展并且更具成本效益。
NoSQL 對于非結構化或非常大的數據對象(例如聊天日志數據、視頻或圖像)非常有用,這就是為什么 NoSQL 在微軟、谷歌、亞馬遜、Meta (Facebook) 等互聯網巨頭中特別受歡迎的原因。
一些流行的 NoSQL 數據庫包括:
隨著企業更快地積累更大的數據集,結構化數據和關系模式并不總是適合。有必要使用非結構化數據和大型對象來更好地捕獲這些信息。
傳統的 RDBMS 使用 SQL(結構化查詢語言)語法來存儲和檢索結構化數據,相反,NoSQL 數據庫包含廣泛的功能,可以存儲和檢索結構化、半結構化、非結構化和多態數據。
有時,NoSQL 也被稱為“ 不僅僅是 SQL ”,強調它可能支持類似 SQL 的語言或與 SQL 數據庫并列。SQL 和 NoSQL DBMS 之間的一個區別是 JOIN 功能。SQL 數據庫使用 JOIN 子句來組合來自兩個或多個表的行,因為 NoSQL 數據庫本質上不是表格的,所以這個功能并不總是可行或相關的。
但是,一些 NoSQL DBMS 可以執行類似于 JOIN的操作——就像 MongoDB 一樣。這并不意味著不再需要 SQL DBMS,相反,NoSQL 和 SQL 數據庫傾向于以不同的方式解決類似的問題。
一般來說,在以下情況下,NoSQL 比 SQL 更可取:
許多行業都在采用 NoSQL,取代關系數據庫,從而為某些業務應用程序提供更高的靈活性和可擴展性,下面給出了 NoSQL 數據庫的一些企業用例。
內容管理是一組用于收集、管理、傳遞、檢索和發布任何格式的信息的過程,包括文本、圖像、音頻和視頻。NoSQL 數據庫可以通過其靈活和開放的數據模型為存儲多媒體內容提供更好的選擇。
例如,福布斯在短短幾個月內就構建了一個基于 MongoDB 的定制內容管理系統,以更低的成本為他們提供了更大的敏捷性。
大數據是指太大而無法通過傳統處理系統處理的數據集,實時存儲和檢索大數據的系統在分析 歷史 數據的同時使用流處理來攝取新數據,這是一系列非常適合 NoSQL 數據庫的功能。
Zoom使用 DynamoDB(按需模式)使其數據能夠在沒有性能問題的情況下進行擴展,即使該服務在 COVID-19 大流行的早期使用量激增。
物聯網設備具有連接到互聯網或通信網絡的嵌入式軟件和傳感器,能夠在無需人工干預的情況下收集和共享數據。隨著數十億臺設備生成數不清的數據,IoT NoSQL 數據庫為 IoT 服務提供商提供了可擴展性和更靈活的架構。
Freshub就是這樣的一項服務,它從 MySQL 切換到 MongoDB,以更好地處理其大型、動態、非統一的數據集。
擁有數十億智能手機用戶,可擴展性正成為在移動設備上提供服務的企業面臨的最大挑戰。具有更靈活數據模型的 NoSQL DBMS 通常是完美的解決方案。
例如,The Weather Channel使用 MongoDB 數據庫每分鐘處理數百萬個請求,同時還處理用戶數據并提供天氣更新。
對此,前Google工程師,Milo(本地商店搜索引擎)創始人Ted Dziuba最近發表標題驚人的博客“I Can't Wait for NoSQL to Die”,對NoSQL的適用范圍進行了分析。他認為,
NoSQL也會帶來一連串的新問題,并不會成為主流,無法取代關系型數據庫。
他的理由是:Cassandra等NoSQL數據庫在使用上并不方便,比如,修改column family定義時就需要重啟。而且NoSQL更適合Google那樣的規模,而一般的互聯網公司都不是Google,早早地去考慮Google那樣的規模的可擴展性,純粹是浪費時間,存在巨大的商業風險。
他還透露,即使在Google,AdWords這樣的關鍵產品也是基于MySQL實現的。
他在文中最后表示,NoSQL當然死不了,但是
它最終會被邊緣化,就像Rails被NoSQL邊緣化一樣
Dziuba的文章因為言辭激烈,在社區里引起了強烈反應。
SQL數據庫陣營贊同者大有人在。craigslist工程師、著名的MySQL專家Jeremy Zawodny表示,在讀此文的時候,不時會心一笑。他說,
NoSQL運動只是軟件不斷進化進程中的正常現象
。關系型數據庫也會繼續發展,MySQL社區不斷推出的XtraDB或InnoDB插件, PBXT, Drizzle都是證據。各種技術競爭的結果是,我們獲得了更多解決問題的選擇。
drizzle項目開發者Eric Day也表示,NoSQL有很多值得學習的,但是目前大部分實際項目的最佳選擇還是關系型數據庫。
NoSQL陣營當然不會坐視不理,Cassandra項目組的Eric Evans表示,Dziuba提到Cassandra修改column family定義的問題其實很容易解決。而且,NoSQL并不是要取代MySQL,事實上Twitter仍然在用MySQL。如果關系型數據庫能夠承擔負荷,那就用好了;如果不行,請考慮NoSQL。
而德國知名博客Code Monkeyism則嘲笑Dziuba看起來并沒有用MySQL做過真實項目,因為MySQL如果沒有memcache,基本上無法應付網站項目。他認為,NoSQL將使SQL數據庫邊緣化,而且一個重要理由恰恰是可以節省DBA的開銷。
digg的前任首席架構師現在也在創業的Joe Stump說,自己現在的創業項目就是用NoSQL,而且列舉了一系列問題挑戰SQL陣營。
因為索引多。同一條個數據,NOSQL占用空間是一般SQL數據庫的3-5倍。
你可以理解成NOSQL默認開啟全字段索引和全文索引什么的。
其實在十萬級以下的數據,只要SQL建好索引的情況并不比NOSQL慢。NOSQL主要是用于千萬上億級的時候。
一樣是數據庫
NOSQL查詢速度快,但是占用空間也大(都去索引那邊了)
但是NOSQL查詢復雜的邏輯關系的時候,只能批量獲取到本地去統計而SQL能通過條件和關聯表等方式進行篩選只顯示符合條件的語句。
NOSQL用于無條件或少條件下的存取。百億級數據也能快速取出。
SQL用于復雜的邏輯存取。在數據量不多的情況下也能跟NOSQL一樣用于數據存儲。
分享名稱:nosql取代sql,nosql的概念
標題路徑:http://m.2m8n56k.cn/article14/hojdge.html
成都網站建設公司_創新互聯,為您提供企業建站、動態網站、面包屑導航、手機網站建設、Google、品牌網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯