Sungguh DynamoDB dan MySQL adalah apel dan jeruk. DynamoDB adalah lapisan penyimpanan NoSQL sedangkan MySQL digunakan untuk penyimpanan relasional. Anda harus memilih apa yang akan digunakan berdasarkan kebutuhan sebenarnya dari aplikasi Anda. Faktanya, beberapa aplikasi mungkin terlayani dengan baik dengan menggunakan keduanya.
Jika, misalnya, Anda menyimpan data yang tidak cocok dengan skema relasional (struktur pohon, representasi JSON tanpa skema, dll.) Yang dapat dicari dengan satu kunci atau kombinasi kunci / rentang maka DynamoDB ( atau beberapa toko NoSQL lainnya) kemungkinan akan menjadi taruhan terbaik Anda.
Jika Anda memiliki skema yang terdefinisi dengan baik untuk data Anda yang dapat disesuaikan dengan baik dalam struktur relasional dan Anda memerlukan fleksibilitas untuk melakukan kueri data dalam beberapa cara berbeda (menambahkan indeks seperlunya tentunya), maka RDS mungkin merupakan solusi yang lebih baik .
Manfaat utama menggunakan DynamoDB sebagai penyimpanan NoSQL adalah Anda mendapatkan throughput baca / tulis yang terjamin pada tingkat apa pun yang Anda butuhkan tanpa harus khawatir tentang mengelola penyimpanan data berkerumun. Jadi, jika aplikasi Anda memerlukan 1000 baca / tulis per detik, Anda cukup menyediakan tabel DynamoDB untuk tingkat throughput tersebut dan tidak perlu mengkhawatirkan infrastruktur yang mendasarinya.
RDS memiliki banyak manfaat yang sama dengan tidak perlu mengkhawatirkan infrastruktur itu sendiri, namun jika Anda akhirnya perlu melakukan banyak penulisan ke titik di mana ukuran instans terbesar tidak lagi dapat mengimbangi, Anda agak dibiarkan tanpa opsi (Anda dapat menskalakan secara horizontal untuk membaca menggunakan replika baca).
Catatan yang diperbarui: DynamoDb sekarang mendukung pengindeksan sekunder global, jadi Anda sekarang memiliki kemampuan untuk melakukan pencarian yang dioptimalkan pada bidang data selain hash atau kombinasi kunci hash dan rentang.