DynamoDB a MySQL jsou ve skutečnosti jablka a pomeranče. DynamoDB je vrstva úložiště NoSQL, zatímco MySQL se používá pro relační úložiště. Měli byste si vybrat, co chcete použít, na základě skutečných potřeb vaší aplikace. Ve skutečnosti mohou být některé aplikace dobře obsluhovány použitím obou.
Pokud například ukládáte data, která se nehodí k relačnímu schématu (stromové struktury, reprezentace JSON bez schémat atd.), která lze vyhledat pomocí jediného klíče nebo kombinace klíče/rozsahu, pak DynamoDB ( nebo nějaký jiný obchod NoSQL) by pravděpodobně byla vaše nejlepší sázka.
Pokud máte dobře definované schéma pro svá data, které se dobře vejde do relační struktury, a potřebujete flexibilitu k dotazování na data mnoha různými způsoby (samozřejmě přidáním indexů podle potřeby), pak může být RDS lepším řešením. .
Hlavní výhodou použití DynamoDB jako úložiště NoSQL je to, že získáte zaručenou propustnost čtení/zápisu na jakékoli úrovni, kterou požadujete, aniž byste se museli starat o správu klastrovaného úložiště dat. Pokud tedy vaše aplikace vyžaduje 1 000 čtení/zápisů za sekundu, můžete svou tabulku DynamoDB zajistit pro tuto úroveň propustnosti a nemusíte se skutečně starat o základní infrastrukturu.
RDS má v podstatě stejnou výhodu, že se nemusíte starat o samotnou infrastrukturu, ale pokud nakonec budete potřebovat provést značný počet zápisů do bodu, kdy největší velikost instance již nebude stačit, zůstanete tak trochu bez možnosti (můžete horizontálně škálovat pro čtení pomocí čtených replik).
Aktualizovaná poznámka:DynamoDb nyní podporuje globální sekundární indexování, takže nyní máte možnost provádět optimalizované vyhledávání v datových polích jiných než hash nebo kombinace klíčů hash a range.