NoSQL 資料庫簡介
阿新 • • 發佈:2021-11-08
什麼是 NoSQL 資料庫
NoSQL(Not Only SQL,不僅僅是SQL)泛指非關係型的資料庫。它是為了解決大規模資料集合以及多種資料型別帶來的問題,尤其是大資料應用難題。NoSQL 資料庫並沒有一個統一的架構,各有所長。
關係型資料庫 VS NoSQL 資料庫
NoSQL 資料庫是一類資料庫的統稱(如鍵值儲存型,文件型,列儲存型等等)。
關係資料庫
- 優勢:以完善的關係代數理論作為基礎,有嚴格的標準,支援事務 ACID 屬性,藉助索引機制可以實現高效的查詢,技術成熟,有專業公司的技術支援.
- 劣勢:可擴充套件性較差,無法較好支援海量資料儲存,無法滿足資料高併發的需求
NoSQL 資料庫
- 優勢:可以支援超大規模資料儲存,靈活的資料模型可以很好地支援 Web2.0 應用,具有強大的橫向擴充套件能力等.
- 劣勢:缺乏數學理論基礎,複雜查詢效能不高,大都不能實現事務強一致性,很難實現資料完整性,技術尚不成熟,缺乏專業團隊的技術支援,維護較困難等
結論
關係資料庫和 NoSQL 資料庫各有優缺點,彼此無法取代
關係資料庫應用場景:電信、銀行等領域的關鍵業務系統,需要保證強事務一致性
NoSQL 資料庫應用場景:網際網路企業、傳統企業的非關鍵業務(比如資料分析)
八種常見的 NoSQL 資料庫
- Redis
- MongeDB
- HBase
- Membase
- Neo4j
- Cassandra
- CouchDB
- Riak
NoSQL 資料庫的四大分類
-
鍵值(Key-Value)儲存資料庫
- 應用場景:內容快取,主要用於處理大量資料的高訪問負載,也用於一些日誌系統等等。
- 優點:查詢速度快。這一類資料庫主要會使用到一個雜湊表,這個表中有一個特定的鍵和一個指標指向特定的資料。Key/value模型對於IT系統來說的優勢在於簡單、易部署。如:Redis,Oracle BDB.
-
列儲存資料庫
- 應用場景:分散式的檔案系統,應對分散式儲存的海量資料。
- 優點:查詢速度快,可擴充套件性強,更容易進行分散式擴充套件。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。如: HBase, Riak, Cassandra,
-
文件型資料庫
- 應用場景:Web 應用(與Key-Value類似,Value是結構化的,不同的是資料庫能夠了解Value的內容)。
- 優點:資料結構要求不嚴格,表結構可變,不需要像關係型資料庫一樣需要預先定義表結構。文件型資料庫可以看作是鍵值資料庫的升級版,而且比鍵值資料庫的查詢效率更高。如:MongoDB ,CouchDB,國內也有文件型資料庫 SequoiaDB,已經開源。
-
圖形(Graph)資料庫
- 應用場景:社交網路,推薦系統等。專注於構建關係圖譜。
- 優點:利用圖結構相關演算法。比如最短路徑定址,N度關係查詢等。使用靈活的圖形模型,並且能夠擴充套件到多個伺服器上。