Một số điểm chung về MongoDB
Ưu điểm:
- lược đồ ít hơn. Nếu bạn có một lược đồ linh hoạt, thì đây là lý tưởng cho một kho lưu trữ tài liệu nhưMongoDB. Điều này khó thực hiện một cách hiệu quả trong RDBMS
- dễ dàng mở rộng quy mô. Quy mô đọc bằng cách sử dụng các tập hợp bản sao. Quy mô ghi bằng cách sử dụng sharding (cân bằng tự động). Chỉ cần khởi động một máy khác và bạn sẽ đi. Thêm nhiều máy hơn =thêm nhiều RAM để phân phối bộ làm việc của bạn.
- chi phí. Tất nhiên, phụ thuộc vào RDBMS nào, nhưng MongoDB miễn phí và có thể chạy trên Linux, lý tưởng để chạy trên bộ sản phẩm rẻ hơn.
- bạn có thể chọn mức độ nhất quán mà bạn muốn tùy thuộc vào giá trị của dữ liệu (ví dụ:hiệu suất nhanh hơn =kích hoạt và quên chèn vào MongoDB, hiệu suất chậm hơn =đợi cho đến khi chèn được sao chép sang nhiều nút trước khi quay lại)
Nhược điểm:
- Kích thước dữ liệu trong MongoDB thường cao hơn do ví dụ:mỗi tài liệu có các tên trường được lưu trữ
- ít linh hoạt hơn với truy vấn (ví dụ:không có JOIN)
- không hỗ trợ cho các giao dịch - một số hoạt động nguyên tử nhất định được hỗ trợ, ở một cấp tài liệu duy nhất
- hiện tại Bản đồ / Thu nhỏ (ví dụ:để thực hiện tổng hợp / phân tích dữ liệu) là OK, nhưng không quá nhanh. Vì vậy, nếu điều đó là bắt buộc, có thể cần thêm một thứ gì đó như Hadoop vào danh sách kết hợp
- có sẵn ít thông tin cập nhật hơn / sản phẩm phát triển nhanh
Gần đây tôi đã viết blog về suy nghĩ của mình trên MongoDB với tư cách là người đến từ nền tảng SQL Server, vì vậy bạn có thể quan tâm đến điều đó (trên đây chỉ là một số điểm chính).
Nếu bạn đang tìm kiếm câu trả lời "MongoDB có tốt hơn RDBMS không" - thì IMHO không có câu trả lời. Các công nghệ NoSQL như MongoDB cung cấp một giải pháp thay thế, bổ sung cho các công nghệ RDBMS. Một cái có thể phù hợp với một mục đích cụ thể hơn cái kia, vì vậy, tất cả chỉ nhằm tạo ra một cuộc gọi về những gì tốt nhất cho bạn cho một yêu cầu nhất định.