वास्तव में DynamoDB और MySQL सेब और संतरे हैं। DynamoDB एक NoSQL स्टोरेज लेयर है जबकि MySQL का उपयोग रिलेशनल स्टोरेज के लिए किया जाता है। आपको अपने आवेदन की वास्तविक जरूरतों के आधार पर क्या उपयोग करना है यह चुनना चाहिए। वास्तव में, कुछ अनुप्रयोगों को दोनों का उपयोग करके अच्छी तरह से परोसा जा सकता है।
यदि, उदाहरण के लिए, आप डेटा संग्रहीत कर रहे हैं जो एक संबंधपरक स्कीमा (वृक्ष संरचना, स्कीमा-कम JSON अभ्यावेदन, आदि) के लिए अच्छी तरह से उधार नहीं देता है जिसे एक कुंजी या कुंजी/श्रेणी संयोजन के विरुद्ध देखा जा सकता है तो डायनेमोडीबी ( या कोई अन्य नोएसक्यूएल स्टोर) आपकी सबसे अच्छी शर्त हो सकती है।
यदि आपके पास अपने डेटा के लिए एक अच्छी तरह से परिभाषित स्कीमा है जो एक संबंधपरक संरचना में अच्छी तरह फिट हो सकती है और आपको डेटा को कई अलग-अलग तरीकों से क्वेरी करने के लिए लचीलेपन की आवश्यकता है (निश्चित रूप से आवश्यक इंडेक्स जोड़ना), तो आरडीएस एक बेहतर समाधान हो सकता है ।
DynamoDB को NoSQL स्टोर के रूप में उपयोग करने का मुख्य लाभ यह है कि आपको क्लस्टर डेटा स्टोर के प्रबंधन के बारे में चिंता किए बिना किसी भी स्तर पर गारंटीड रीड/राइट थ्रूपुट मिलता है। इसलिए यदि आपके आवेदन के लिए प्रति सेकंड 1000 रीड्स/राइट्स की आवश्यकता है, तो आप केवल उस स्तर के थ्रूपुट के लिए अपनी डायनेमोडीबी तालिका का प्रावधान कर सकते हैं और वास्तव में अंतर्निहित बुनियादी ढांचे के बारे में चिंता करने की ज़रूरत नहीं है।
आरडीएस के पास बुनियादी ढांचे के बारे में चिंता न करने का एक ही लाभ है, हालांकि यदि आपको उस बिंदु पर बड़ी संख्या में लिखने की आवश्यकता होती है जहां सबसे बड़ा उदाहरण आकार अब नहीं रहेगा, तो आप बिना किसी प्रकार के बाएं हैं विकल्प (आप पठन प्रतिकृतियों का उपयोग करके पढ़ने के लिए क्षैतिज रूप से स्केल कर सकते हैं)।
अपडेट किया गया नोट:DynamoDb अब वैश्विक माध्यमिक अनुक्रमण का समर्थन करता है, इसलिए अब आपके पास हैश या हैश और रेंज कुंजियों के संयोजन के अलावा अन्य डेटा फ़ील्ड पर अनुकूलित लुकअप करने की क्षमता है।