Sungguh DynamoDB dan MySQL adalah apel dan jeruk. DynamoDB adalah lapisan penyimpanan NoSQL sementara MySQL digunakan untuk penyimpanan relasional. Anda harus memilih apa yang akan digunakan berdasarkan kebutuhan sebenarnya dari aplikasi Anda. Bahkan, beberapa aplikasi mungkin dilayani dengan baik dengan menggunakan keduanya.
Jika, misalnya, Anda menyimpan data yang tidak cocok untuk skema relasional (struktur pohon, representasi JSON tanpa skema, dll.) yang dapat dicari dengan kunci tunggal atau kombinasi kunci/rentang, maka DynamoDB ( atau toko NoSQL lainnya) kemungkinan besar akan menjadi pilihan terbaik Anda.
Jika Anda memiliki skema yang terdefinisi dengan baik untuk data Anda yang dapat masuk dengan baik dalam struktur relasional dan Anda memerlukan fleksibilitas untuk menanyakan data dalam beberapa cara yang berbeda (tentu saja menambahkan indeks jika diperlukan), 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 perlukan tanpa harus khawatir tentang mengelola penyimpanan data yang dikelompokkan. Jadi, jika aplikasi Anda memerlukan 1000 baca/tulis per detik, Anda cukup menyediakan tabel DynamoDB untuk tingkat throughput tersebut dan tidak perlu khawatir tentang infrastruktur yang mendasarinya.
RDS memiliki banyak manfaat yang sama karena tidak perlu khawatir tentang infrastruktur itu sendiri, namun jika Anda akhirnya perlu melakukan sejumlah besar penulisan ke titik di mana ukuran instans terbesar tidak lagi mengikuti, Anda tidak perlu opsi (Anda dapat menskalakan secara horizontal untuk pembacaan 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.