Mysql

SQL 與 NoSQL:獲取 DynamoDB 與 SQL 數據庫中的所有記錄

  • December 1, 2020

我正在為一個需要頻繁查詢所有記錄的項目設計數據庫。記錄總數將少於 500K。我正在考慮的數據庫之一是 AWS DynamoDB,其中用於此目的的掃描操作效率非常低。我無法理解的是它在基於 SQL 的數據庫中是否效率低下,或者在頻繁呼叫獲取所有記錄時是否有比其他更好的數據庫。

掃描操作通常不是最佳的,但 500,000 條記錄對於標準 RDBMS 來說並不算太瘋狂。例如,我已經看到 Microsoft SQL Server 在非常基本的伺服器(4 核,32 GB RAM)上在幾秒鐘內在一個相當寬的表(大約 100 列)上提供了 100 萬條記錄。

我不是 NoSQL 數據庫或 DynamoDB 方面的專家,但我過去研究過它的案例,我的理解是它在記憶體少量數據和呼叫較小的“單一”數據集時性能最高,例如分頁產品資訊在目錄或特定使用者的設置上。所以我會說 NoSQL 數據庫(或至少 DynamoDB)可能不適合掃描大量數據,但現代 RDBMS 應該能夠處理掃描基本架構上的幾百萬條記錄。

是的,在 NoSQL 世界中掃描 500k 行(取決於行大小)通常是一個壞主意。這是因為 NoSQL DB(可能因產品而異)通常被設計為將其數據分佈在多個(商品)實例中。因此,表掃描最終會從多個(或所有)實例中讀取,從而增加了查詢執行的網路時間。

對於您所說的 RDBMS(如 PostgreSQL 或 SQL Server)應該就可以了。

引用自:https://dba.stackexchange.com/questions/280537