จริงๆ DynamoDB และ MySQL คือแอปเปิ้ลและส้ม DynamoDB เป็นชั้นเก็บข้อมูล NoSQL ในขณะที่ MySQL ใช้สำหรับหน่วยเก็บข้อมูลเชิงสัมพันธ์ คุณควรเลือกสิ่งที่จะใช้ตามความต้องการที่แท้จริงของแอปพลิเคชันของคุณ ในความเป็นจริงแอปพลิเคชันบางตัวอาจใช้งานได้ดีโดยใช้ทั้งสองอย่าง
ตัวอย่างเช่นหากคุณกำลังจัดเก็บข้อมูลที่ไม่สามารถให้ยืมตัวเองไปยังสคีมาเชิงสัมพันธ์ (โครงสร้างแบบต้นไม้การแสดง JSON แบบไม่ใช้สคีมา ฯลฯ ) ซึ่งสามารถค้นหาได้จากคีย์เดียวหรือชุดคีย์ / ช่วงจากนั้น DynamoDB ( หรือร้านค้า NoSQL อื่น ๆ ) น่าจะเป็นทางออกที่ดีที่สุดของคุณ
หากคุณมีสคีมาที่กำหนดไว้อย่างดีสำหรับข้อมูลของคุณซึ่งสามารถปรับให้เข้ากับโครงสร้างเชิงสัมพันธ์ได้ดีและคุณต้องการความยืดหยุ่นในการสืบค้นข้อมูลด้วยวิธีต่างๆมากมาย (แน่นอนว่าการเพิ่มดัชนีตามความจำเป็น) RDS อาจเป็นทางออกที่ดีกว่า .
ประโยชน์หลักสำหรับการใช้ DynamoDB เป็นที่เก็บ NoSQL คือคุณจะได้รับการรับประกันปริมาณงานอ่าน / เขียนในระดับใดก็ตามที่คุณต้องการโดยไม่ต้องกังวลกับการจัดการที่เก็บข้อมูลแบบคลัสเตอร์ ดังนั้นหากแอปพลิเคชันของคุณต้องการการอ่าน / เขียน 1,000 ครั้งต่อวินาทีคุณสามารถจัดเตรียมตาราง DynamoDB ของคุณสำหรับปริมาณงานระดับนั้นและไม่ต้องกังวลเกี่ยวกับโครงสร้างพื้นฐานที่สำคัญ
RDS มีประโยชน์เช่นเดียวกันกับการไม่ต้องกังวลเกี่ยวกับโครงสร้างพื้นฐานเองอย่างไรก็ตามหากคุณต้องเขียนจำนวนมากจนถึงจุดที่ขนาดอินสแตนซ์ที่ใหญ่ที่สุดจะไม่สามารถติดตามได้อีกต่อไปคุณก็จะไม่เหลืออะไร ตัวเลือก (คุณสามารถปรับขนาดในแนวนอนสำหรับการอ่านโดยใช้แบบจำลองการอ่าน)
อัปเดตหมายเหตุ: ขณะนี้ DynamoDb สนับสนุนการจัดทำดัชนีทุติยภูมิทั่วโลกดังนั้นตอนนี้คุณจึงมีความสามารถในการค้นหาที่เหมาะสมที่สุดในฟิลด์ข้อมูลนอกเหนือจากแฮชหรือการรวมกันของแฮชและคีย์ช่วง