非關系型數據庫有哪些優缺點?
非關系型數據庫嚴格上不是一種數據庫,應該是一種數據結構化存儲方法的集合,可以是文檔或者鍵值對等 。當初我在黑馬程序員培訓時候就學過 。
優點:
1、格式靈活:存儲數據的格式可以是key,value形式、文檔形式清鋒、圖片形式等等搭正念,文檔形式、圖片形式等等,使用靈活,應用場景廣泛,而關系型數據庫則只支持基礎類型 。
2、速度快:nosql可以使用硬盤或者隨機存儲器作為載體,而關系型數據庫只能使用硬盤;
3、高擴展性;
4、成本低:nosql數據庫部署簡單,基本都是開源軟件 。
缺點:
1、不提供sql支持,學習和使用成本較高;
2、無事務處理;
3、數據結構相對復雜,復雜查詢方面稍欠 。
非關系型數據庫的分類和比較:
1、知困文檔型
2、key-value型
3、列式數據庫
4、圖形數據庫
什么是非關系型數據庫?,如何定義?
隨著互聯網web2.0網站的興起,非關系型的數據庫現在成了一個極其熱門的新領域,非關系數據庫產品的發展非常迅速 。而傳統的關系數據庫在應付web2.0網站,特別是超大規模和高并發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,例如:
1、High performance——對數據庫高并發讀寫的需求
Web2.0網站要根據用戶個性化信息來實時生成動態頁面和提供動態信息,所以基本上無法使用動態頁面靜態化技術,因此數據庫并發負載非常高,往往要達到每秒上萬次讀寫請求 。關系數據庫應付上萬次SQL查詢還勉強頂得住,但是應付上萬次SQL寫數據請求,硬盤IO就已經無法承受了 。其實對于普通的BBS網站,往往也存在對高并發寫請求的需求,例如像JavaEye網站的實時統計在線用戶狀態,記錄熱門帖子的點擊次數,投票計數等,因此這是一個相當普遍的需求 。
2、Huge Storage——對海量數據的高效率存儲和訪問的需求
類似Facebook,twitter,Friendfeed這樣的SNS網站,每天用戶產生海量的用戶動態,以Friendfeed為例,一個月就達到了2.5億條用戶動態,對于關系數據庫來說,在一張2.5億條記錄的表里面進行SQL查詢,效率是極其低下乃至不可忍受的 。再例如大型web網站的用戶登錄系統,例如騰訊,盛大,動輒數以億計的帳號,關系數據庫也很難應付 。
3、High Scalability && High Availability——對數據庫的高可擴展性和高可用性的需求
在基于web的架構當中,數據庫是最難進行橫向擴展的,當一個應用系統的用戶量和訪問量與日俱增的時候,你的數據庫卻沒有辦法像web server和app server那樣簡單的通過添加更多的硬件和服務節點來擴展性能和負載能力 。對于很多需要提供24小時不間斷服務的網站來說,對數據庫系統進行升級和擴展是非常痛苦的事情,往往需要停鎮租機維護和數據遷移,為什么數據庫不能通過不斷的添加服務器節點來實現擴展呢?
在上面提到的“三高”需求面前,關系數據庫遇到了難以克服的障礙,而對于web2.0網站來說,關系數據庫的很多主要特性卻往往無用武之地,例如:
1. 數據庫事務一致性需求
很多web實時系統并不要求嚴格的數據庫事務,對讀一致性的要求很低,有些場合對寫一致性要求也不高 。因此數據庫事務管理成了數據庫高負載下一個沉重的負擔 。
2. 數據庫的寫實時性和讀實時性需求
對關系數據庫來說,插入一條數據之后立刻查詢,是肯定可以讀出來這條數據的,但是對于很多web應用來說,并不要求這么高的實時性,比方說我(JavaEye的robbin)發一條消息之后,過幾秒乃御攔兆至十幾秒之后,我的訂閱者才看到這條動態是完全可以接受的 。
3、對復雜的SQL查詢,特別是衡肢多表關聯查詢的需求
任何大數據量的web系統,都非常忌諱多個大表的關聯查詢,以及復雜的數據分析類型的復雜SQL報表查詢,特別是SNS類型的網站,從需求以及產品設計角度,就避免了這種情況的產生 。往往更多的只是單表的主鍵查詢,以及單表的簡單條件分頁查詢,SQL的功能被極大的弱化了 。
因此,關系數據庫在這些越來越多的應用場景下顯得不那么合適了,為了解決這類問題的非關系數據庫應運而生,現在這兩年,各種各樣非關系數據庫,特別是鍵值數據庫(Key-Value Store DB)風起云涌,多得讓人眼花繚亂 。前不久國外剛剛舉辦了NoSQL Conference,各路NoSQL數據庫紛紛亮相,加上未亮相但是名聲在外的,起碼有超過10個開源的NoSQLDB,例如:
Redis,Tokyo Cabinet,Cassandra,Voldemort,MongoDB,Dynomite,HBase,CouchDB,Hypertable,Riak,Tin,Flare,Lightcloud,KiokuDB,Scalaris,Kai,ThruDB,......
這些NoSQL數據庫,有的是用C/C++編寫的,有的是用Java編寫的,還有的是用Erlang編寫的,每個都有自己的獨到之處,看都看不過來了,我(robbin)也只能從中挑選一些比較有特色,看起來更有前景的產品學習和了解一下 。
關系型數據庫和非關系型數據庫區別1/7 分步閱讀
1.實質 。非關系型數據庫的實質:非關系型數據庫產品是傳統關系型數據庫的功能閹割版本,通過減少用不到或很少用的功能,來大幅度提高產品性能 。
2/7
2.價格 。目前基本上大部分主流的非關系型數據庫都是免費的 。而比較有名氣的關系型數據庫,比如Oracle、DB2、MSSQL是收費的 。雖然Mysql免費,但它需要做很多工作才能正式用于生產 。
3/7
【關系型數據庫和非關系型數據庫區別 非關系型數據庫定義】3.功能 。實際開發中,有很多業務需求,其實并不需要完整的關系型數據庫功能,非關系型數據庫的功能就足夠使用了 。這種情況下,使用性能更高、成本更低的非關系型數據庫當然是更明智的選擇 。
4/7
傳統的SQL數據庫有3個缺點
許可費用昂貴
不能自動Sharding
嚴格的Schema
互聯網公司一般都是技術密集型的,就自己根據自己的需求搞了一套數據存儲,犧牲了嚴格一致性,滿足互聯網伸縮性的要求 。
5/7
nosql 當年是為了處理 雜亂的非結構化數據來設計的 比如 網頁訪問信息 那就如樓上說的 閹割了sql 的 acid 特性 這樣當然快了啊 比如插入數據
相反如果是一些 交易數據 數據的安全穩定 壓倒一切的時候 rdbms 就顯現威力了 但是rdbms 在面對nosql的 一些挑戰之后 大力優化了 對于一些 非結構化數據的支持 比如json 數據 同時rdbms 對于 olap and oltp 的支持 也要比 nosql快的你是一點半點
6/7
非關系型數據庫的優勢:1. 性能NOSQL是基于鍵值對的,可以想象成表中的主鍵和值的對應關系,而且不需要經過SQL層的解析,所以性能非常高 。2. 可擴展性同樣也是因為基于鍵值對,數據之間沒有耦合性,所以非常容易水平擴展 。
7/7
關系型數據庫的優勢:1. 復雜查詢可以用SQL語句方便的在一個表以及多個表之間做非常復雜的數據查詢 。2. 事務支持使得對于安全性能很高的數據訪問要求得以實現 。對于這兩類數據庫,對方的優勢就是自己的弱勢,反之亦然 。
下面哪些是非關系型數據庫
下面哪些是非關系型數據庫,非關系型數據庫有:
1、MongoDB,是一個面向文檔的開源NoSQL數據庫;
2、Cassandra,是Facebook為收件箱搜索開發的;
3、Redis,是最著名的鍵值存儲 。
NoSQL數據庫(非關系型數據庫)是用于存儲和檢索數據的非關系數據庫系統消伏段 。在當今世界,我們不應該只以沒有預定義固定模式的表格式存儲所有數據(固定沒有列) 。像用戶生成的數據、地理位置數據、物聯網生成的數據一樣,社交圖是真實世界數據呈指數級增長的例子 。這些龐大的數據也需要大量的處理 。這時NoSQL數據庫就拿譽出現了 。使用NoSQL數據庫,我們可廳凱以存儲和退休的文件,鍵值,圖形為基礎的數據容易和更快 。我們可以很容易地避免復雜的SQL連接操作 。易于使用NoSQL DBs對實際問題(web和企業業務應用程序)進行水平伸縮 。
非關系型數據庫都有哪些?
常見的非關系型數據庫有:NoSql、Cloudant、MongoDB、redis、HBase 。
非關系型數據庫主要包括幾類各有什么特點?
非關系型數據庫(NoSQL)是一種不依賴于關系模型的數據庫,它提供了一種更靈活、可告悔擴展的數據存儲方式 。非關系型數據庫主要包括以下幾類:
- 列存儲型數據庫:侍友滲這種數據庫通常把數據存儲在一列中,并支持快速的列計算和分布式計算 。它適用于處理海量的結構化數據,比如日志、傳感器數據等 。
- 文檔型數據庫:這種數據庫通常把數老脊據存儲在文檔中,并支持對數據的靈活查詢和復雜的聚
關于非關系型數據庫和非關系型數據庫定義的內容就分享到這兒!更多實用知識經驗,盡在 m.apearl.cn
- 給孩子的寄語和期望
- 40寸的電視長和寬分別是多少
- rougelike是什么類型游戲,rougelike和roguelite區別
- 當代史和現代史的區別
- 目的偏旁字有哪些字,目的偏旁有哪些字組詞和拼音
- 甘蔗可以和芒果同時吃嗎
- 序字組詞和部首,扇字組詞
- 小米10 Pro和榮耀30 Pro+哪個好-小米10 Pro和榮耀30 Pro+對比測評 小米10pro價格公布
- 各種動物的特點是什么 動物尾巴的特點和作用
- 在職場中,工作思路和工作經驗,誰更重要 認知盈余:自由時間的力量簡介
