什么是 NoSQL 數據庫?
通常,“NoSQL 數據庫”是指非關系型數據庫。不管它是“non SQL”的縮寫,還是“not only SQL”的縮寫,大多數人都同意,NoSQL 數據庫是以關系表之外的格式存儲數據的。
NoSQL 數據庫之所以如此大受歡迎,是因為它們為用戶提供了靈活的數據存儲模式。
為什么要使用 NoSQL 數據庫?
NoSQL 數據庫性能優異、可擴展,而且很靈活,非常適合移動、Web 和游戲應用程序。
可擴展性:NoSQL 數據庫通常使用分布式硬件集群進行橫向擴展,而不是通過增加昂貴、健壯的服務器進行縱向擴展。在全托管服務中,有些云提供商在后臺幫用戶完成了所有這些操作。
靈活性:NoSQL 數據庫通常都提供了靈活的模式,支持快速迭代開發。NoSQL 數據庫有靈活的數據模型,非常適合半結構和非結構化數據。
高性能:與關系型數據庫相比,NoSQL 數據庫針對特定的數據模型和訪問模式做了優化,進一步提升了性能。
以下是一些知名的 NoSQL 數據庫類
鍵值數據庫
鍵值數據庫成對存儲數據,每個記錄包含一個唯一 id 和一個值。這類數據庫提供了靈活的存儲結構,因為值中可以存儲任意數量的非結構化數據。
應用場景
典型產品
Amazon DynamoDB、Azure Cosmos DB、Riak。
內存鍵值數據庫
不同于基于磁盤的數據庫,這類數據庫的數據主要保存在內存中。通過減少磁盤訪問實現最小響應時間。由于所有數據都存儲在內存中,在進程或服務器出現故障時,內存數據庫有丟失數據的風險。內存數據庫可以通過在日志中記錄每個操作或生成數據快照的方式將數據持久化到磁盤上。
典型產品
Redis、Memcached、Amazon Elasticache。
文檔數據庫
文檔數據的結構和鍵值數據庫類似,只是鍵和值的形式是用標記語言(如 JSON、XML 或 YAML)編寫的文檔。
應用場景
用戶資料、產品目錄和內容管理。
典型產品
MongoDB、Amazon DocumentDB、CouchDB。
列式數據庫
列式數據庫基于表存儲,但沒有嚴格的列格式。列式數據庫不要求每一列都有值,而且可以組合包含不同數據格式的行段和列段。
應用場景
遙測數據、分析數據、消息傳遞和時序數據。
典型產品
Cassandra、Accumulo、Azure Table Storage、HBase。
圖數據庫
圖數據庫使用節點和邊來映射數據之間的關系。節點是單個的數據值,邊是這些值之間的關系
應用場景
社交圖譜、推薦引擎和欺詐檢測。
典型產品
Neo4j、Amazon Neptune、Azure Cosmos DB Gremlin。
時序數據庫
這類數據庫存儲有時間順序的流式數據。數據不是按值或 id 排序,而是按收集、攝入時間或元數據中包含的其他時間戳排序。
應用場景
典型產品
Graphite、Prometheus、Amazon Timestream。
分類賬數據庫
分類賬數據庫以日志為基礎,日志中記錄了與數據值相關的事件。這類數據庫存儲用于驗證數據完整性的數據更改操作。
應用場景
銀行系統、注冊、供應鏈、記錄系統(systems of record)。
典型產品
Amazon Quantum Ledger Database(QLDB)。
小 結
為了選出最合適自己的 NoSQL 數據庫,你應該了解各種 NoSQL 數據庫之間的差異。
-
內存
+關注
關注
8文章
3019瀏覽量
74005 -
數據庫
+關注
關注
7文章
3794瀏覽量
64362 -
nosql
+關注
關注
0文章
39瀏覽量
9997
發布評論請先 登錄
相關推薦
評論