Gerçekten DynamoDB ve MySQL elma ve portakaldır. DynamoDB, bir NoSQL depolama katmanıdır, MySQL ise ilişkisel depolama için kullanılır. Uygulamanızın gerçek ihtiyaçlarına göre ne kullanacağınızı seçmelisiniz. Aslında, bazı uygulamalar her ikisi de kullanılarak iyi bir şekilde sunulabilir.
Örneğin, tek bir anahtara veya bir anahtar / aralık kombinasyonuna göre aranabilen ilişkisel bir şemaya (ağaç yapıları, şemasız JSON gösterimleri vb.) Uygun olmayan verileri depoluyorsanız, o zaman DynamoDB ( veya başka bir NoSQL mağazası) muhtemelen en iyi seçeneğiniz olacaktır.
Verileriniz için ilişkisel bir yapıya iyi bir şekilde uyan iyi tanımlanmış bir şemanız varsa ve verileri birkaç farklı yolla sorgulama esnekliğine ihtiyacınız varsa (tabii ki gerektiğinde dizinler eklemek), o zaman RDS daha iyi bir çözüm olabilir .
DynamoDB'yi bir NoSQL deposu olarak kullanmanın ana yararı, kümelenmiş bir veri deposunu yönetme konusunda endişelenmenize gerek kalmadan, ihtiyacınız olan her düzeyde garantili okuma / yazma verimine sahip olmanızdır. Dolayısıyla, uygulamanız saniyede 1000 okuma / yazma gerektiriyorsa, DynamoDB tablonuzu bu verimlilik düzeyi için hazırlayabilirsiniz ve temeldeki altyapı hakkında gerçekten endişelenmenize gerek kalmaz.
RDS, altyapının kendisi hakkında endişelenmenize gerek kalmaması gibi aynı avantajlara sahiptir, ancak en büyük bulut sunucusu boyutunun artık yetişemeyeceği noktaya kadar önemli sayıda yazma işlemi yapmanız gerekecek olursa, seçenekler (okuma kopyalarını kullanarak okumalar için yatay olarak ölçekleyebilirsiniz).
Güncellenen not: DynamoDb artık global ikincil indekslemeyi desteklemektedir, bu nedenle artık hash veya karma ve aralık anahtarlarının kombinasyonu dışındaki veri alanlarında optimize edilmiş aramalar gerçekleştirme olanağına sahipsiniz.