NoSQL 資料庫是針對可擴展性效能和無結構描述資料模型優化的非關聯式資料庫。NoSQL 資料庫易於開發、低延遲及恢復能力等特點也受到廣泛的肯定。這些資料庫使用單欄、文件、圖形和記憶體內鍵值存放區等各式各樣的資料模型。本頁包含的資源可協助您開始使用 NoSQL 資料庫。
NoSQL 資料庫系統使用各式各樣的模型進行資料管理,例如記憶體內鍵值存放區、圖形資料模型和文件存放區。這些類型的資料庫透過放寬傳統關聯式資料庫的一些資料一致性限制,針對需要大量資料、低延遲和彈性資料模型的應用程式進行優化。
相較於傳統關聯式資料庫,需要更佳可擴展性和更快回應速度的許多大數據、行動和 Web 應用程式,NoSQL 資料庫是絕佳的選擇。由於更簡單的資料結構和水平擴展,NoSQL 資料庫通常比關聯式資料庫的回應更快,而且更容易擴展。
關聯式資料庫管理系統 (RDBMS) 和非關聯式 (NoSQL) 資料庫各有優劣。在 RDBMS,可以彈性的查詢資料,但查詢相對昂貴,而且在高流量的狀況下擴展不易。在 NoSQL 資料庫,可以用有限數量的方式有效的查詢資料,但在外部的查詢就非常昂貴而且速度慢。
| 關聯式資料庫 | NoSQL 資料庫 | |
| 資料模型 | 關聯模型將資料標準化為由列和欄組成的表格。結構描述嚴格定義表格、列、欄、索引、表格之間的關係,以及其他資料庫元素。 | NoSQL 資料庫通常不會強制執行結構描述,而會使用分區索引鍵來擷取值、欄集,或半結構化的 JSON、XML 或其他包含相關項目屬性的文件。 |
| ACID 屬性 | 傳統 RDBMS 支援關聯式資料庫的 ACID 屬性:不可部分完成性、一致性、隔離性、耐用性。不可部分完成性的意思是「全有或全無」– 交易只有完整執行或完全不執行兩種可能。一致性指的是一旦進行交易,資料就必須符合資料庫結構描述。隔離性要求並行的交易必須分開執行。耐用性是指從意外的系統故障或停電狀況還原成上個已知狀態的能力。 | NoSQL 資料庫通常會犧牲一些傳統 RDBMS 的 ACID 屬性,以換取更靈活的水平擴展資料模型。這些特點使 NoSQL 資料庫較傳統 RDBMS 更能克服架構上的挑戰,以解決效能瓶頸、可擴展性、操作複雜性,及與日俱增的行政與支援成本等挑戰。 |
| 效能 | 一般而言,效能取決於磁碟子系統。若要達到頂級效能,就必須針對查詢、索引及表格結構進行優化。 | 效能通常會受到基礎硬體叢集大小、網路延遲,以及呼叫應用程式的影響。 |
| 擴展 | 使用越快的硬體就越容易進行擴展。如果要擴展分散式系統,則需要額外投資關聯式表格。 | 其設計旨在使用低成本硬體的分散式叢集進行擴展,在不增加延遲的情況下增加輸送量。 |
| API | 存放和擷取資料的請求是透過符合結構式查詢語言 (SQL) 的查詢進行通訊。這些查詢由 RDBMS 剖析和執行。 | 以物件為基礎的 API 讓應用程式開發人員可輕鬆存放和擷取記憶體內的資料結構。應用程式可透過分區索引鍵查詢鍵值組、欄集,或包含序列化應用程式物件與屬性的半結構化文件。 |
| 工具 | SQL 資料庫通常會提供一組豐富的工具,以簡化資料庫驅動型應用程式的開發流程。 | NoSQL 資料庫通常會提供用來管理叢集與擴展的工具。應用程式是基礎資料的主要界面。 |
有四種常見的 NoSQL 資料庫類型:單欄、文件、圖形和記憶體內鍵值存放區。通常,這些資料庫的資料存放、存取和結構化方式有所不同,而且分別針對不同的使用案例和應用程式進行優化。
- 單欄式資料庫針對讀取和寫入資料欄而非資料列進行了優化。針對資料庫表格的欄導向儲存在分析查詢效能是非常重要的因素,因為它可大幅降低整體磁碟 I/O 需求,同時減少需要從磁碟載入的資料量。
- 文件資料庫的設計是將半結構化的資料以文件形式存放,通常是 JSON 或 XML 格式。不像傳統的關聯式資料庫,每個 NoSQL 文件的結構描述都不同,因此您可以更靈活的組織和存放應用程式資料,也可以減少選用值的儲存需求。
- 圖形資料庫可存放點和連接這些點的邊。圖形資料庫可以在 SQL 和 NoSQL 資料庫建立。點和邊可具有與各自相關的屬性。
- 記憶體內鍵值存放區是針對高讀取量應用程式工作負載 (如社交聯網、遊戲、媒體共享和問答集入口網站) 或運算密集型工作負載 (如推薦引擎) 優化的 NoSQL 資料庫。記憶體內快取透過將關鍵資料存放在記憶體來提供低延遲存取,以提高應用程式效能。
| SQL |
MongoDB (NoSQL) | DynamoDB (NoSQL) | Cassandra (NoSQL) | Couchbase (NoSQL) |
| 表 | 集合 | 表 | 表 | 資料儲存貯體 |
| 列 | 文件 |
項目 | 列 | 文件 |
| 欄 |
欄位 | 屬性 | 欄 | 欄位 |
| 主索引鍵 |
物件 ID |
主索引鍵 | 主索引鍵 | 文件 ID |
| 索引 | 索引 | 次要索引 | 索引 |
索引 |
| 檢視 | 檢視 | 全域次要索引 | 具體化檢視 | 檢視 |
| 巢狀表格或物件 |
內嵌文件 | 對應 | 對應 | 對應 |
| 陣列 |
陣列 | 清單 | 清單 | 清單 |
開始使用 Amazon DynamoDB 非常簡單。使用我們的入門指南,只需按幾下滑鼠就可以建立您的第一個 DynamoDB 表。
您也可以下載遷移最佳實務 – 從 RDBMS 到 Amazon DynamoDB 白皮書,了解從 RDBMS 到 DynamoDB 遷移工作負載的最佳實務。

