Thực sự DynamoDB và MySQL là táo và cam. DynamoDB là một lớp lưu trữ NoSQL trong khi MySQL được sử dụng để lưu trữ quan hệ. Bạn nên chọn những gì để sử dụng dựa trên nhu cầu thực tế của ứng dụng của bạn. Trong thực tế, một số ứng dụng có thể được phục vụ tốt bằng cách sử dụng cả hai.
Nếu, ví dụ, bạn đang lưu trữ dữ liệu không cho vay tốt với giản đồ quan hệ (cấu trúc cây, biểu diễn JSON giản đồ, vv) có thể được tra cứu trên một khóa hoặc một khóa/phạm vi kết hợp sau đó DynamoDB (hoặc một số cửa hàng NoSQL khác) có thể sẽ là đặt cược tốt nhất của bạn.
Nếu bạn có lược đồ được xác định rõ ràng cho dữ liệu có thể phù hợp trong cấu trúc quan hệ và bạn cần linh hoạt truy vấn dữ liệu theo nhiều cách khác nhau (thêm chỉ mục nếu cần), thì RDS có thể là một giải pháp tốt hơn.
Lợi ích chính khi sử dụng DynamoDB như một kho lưu trữ NoSQL là bạn nhận được thông tin đọc/ghi được đảm bảo ở bất kỳ cấp độ nào bạn yêu cầu mà không phải lo lắng về việc quản lý kho lưu trữ cụm. Vì vậy, nếu ứng dụng của bạn yêu cầu 1000 lần đọc/ghi mỗi giây, bạn chỉ có thể cung cấp bảng DynamoDB cho mức thông lượng đó và không thực sự phải lo lắng về cơ sở hạ tầng cơ bản.
RDS có nhiều lợi ích tương tự khi không phải lo lắng về cơ sở hạ tầng, tuy nhiên nếu bạn cần phải ghi một số lượng đáng kể vào thời điểm kích thước bản sao lớn nhất sẽ không còn nữa, bạn loại trái mà không có tùy chọn (bạn có thể mở rộng theo chiều ngang cho lần đọc bằng cách sử dụng bản sao đã đọc).
Lưu ý cập nhật: DynamoDb hiện hỗ trợ lập chỉ mục phụ toàn cầu, vì vậy bây giờ bạn có khả năng thực hiện tra cứu được tối ưu hóa trên các trường dữ liệu khác với băm hoặc tổ hợp phím băm và phạm vi.
Nguồn
2012-12-20 16:33:16
Nếu tôi có thể upvote câu trả lời của bạn bằng 100, tôi sẽ. – Salil
Bạn gần như có ước muốn của bạn là 100 upvotes :) – Luke
Bạn đã hiểu! 100. –