本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在關聯 (SQL) 和否 之間選擇SQL
當今應用程式的要求比以往更加嚴苛。例如,一款線上遊戲剛開始可能只有少數使用者和極少量的資料。但是,如果遊戲成功了,該遊戲可能容易超過基礎資料庫管理系統的資源。Web 應用程式常擁有數百、數千,甚至數百萬名並行使用者,並且每天產生數 TB 或以上的新資料。這種應用程式的資料庫每秒必須處理成千上萬筆讀取和寫入。
Amazon DynamoDB 正適合這類工作負載。身為開發人員,您可以從小規模開始,並隨著您的應用程式變得愈來愈熱門而逐漸增加使用率。DynamoDB 可無縫擴展,能夠處理極大量的資料和使用者。
如需傳統關聯式資料庫建模以及如何針對 DynamoDB 進行調整的詳細資訊,請參閱 在 DynamoDB 中製作關聯式資料模型的最佳實務。
下表顯示關聯式資料庫管理系統 (RDBMS) 和 DynamoDB 之間的一些高階差異。
特性 | 關聯式資料庫管理系統 (RDBMS) | Amazon DynamoDB |
---|---|---|
最佳工作負載 | 臨時查詢;資料倉儲;OLAP(線上分析處理)。 | Web 規模應用程式,包括社群網路、遊戲、媒體共用及物聯網 (IoT)。 |
資料模型 | 關聯式模型需要定義良好的結構描述,所有資料皆會標準化成資料表、資料列及資料行。此外,資料表、資料行、索引和其他資料庫元素間也都會定義所有關聯性。 | DynamoDB 不具結構描述。每個資料表都必須具備一個主索引鍵,以唯一識別各個資料項目,但其他非索引鍵屬性則沒有類似的限制條件。DynamoDB 可以管理結構化或半結構化資料,包括JSON文件。 |
資料存取 | SQL 是儲存和擷取資料的標準。關聯式資料庫提供一組豐富的工具,可簡化資料庫驅動應用程式的開發,但所有這些工具都使用 SQL。 | 您可以使用 AWS Management Console、 AWS CLI或否SQL WorkBench 來使用 DynamoDB,並執行臨時任務。PartiQL是 SQL相容的查詢語言,可讓您在 DynamoDB 中選取、插入、更新和刪除資料。應用程式可以使用 AWS 軟體開發套件 (SDKs),使用物件型、以文件為中心或低階介面來使用 DynamoDB。 |
效能 | 關聯式資料庫經儲存最佳化,因此效能一般取決於磁碟子系統。開發人員和資料庫管理員必須最佳化查詢、索引及資料表結構,才能達到尖峰效能。 | DynamoDB 經運算最佳化,因此效能主要是基礎硬體和網路延遲的功能。作為受管服務,DynamoDB 會將您和您的應用程式與這些實作細節隔開,讓您可專心設計及建置穩固且高效能的應用程式。 |
擴展 | 使用更快的硬體可以更容易地擴展。資料庫資料表也能在分散式系統中橫跨多部主機,但這需要額外投資。關聯式資料庫在檔案的數目和大小方面皆具有大小上限,而對最大擴展能力有所限制。 | DynamoDB 專為使用分散式硬體叢集水平擴展而設計。這項設計可讓輸送量增加,卻不會增加延遲。客戶可指定其輸送量需求,DynamoDB 便會配置充足的資源以符合這些需求。每個資料表的項目數目沒有上限,該資料表的總大小也沒有上限。 |