MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB Schema Design - Nhiều tài liệu nhỏ hay ít tài liệu lớn hơn?

Bạn chắc chắn sẽ cần phải tối ưu hóa cho các truy vấn mà bạn đang thực hiện.

Đây là phỏng đoán tốt nhất của tôi dựa trên mô tả của bạn.

Có thể bạn sẽ muốn biết tất cả các Thẻ tín dụng cho từng Khách hàng, vì vậy hãy lưu giữ một loạt các Thẻ đó trong Đối tượng khách hàng. Bạn cũng có thể muốn có tham chiếu Khách hàng cho mỗi lần Thanh toán. Điều này sẽ giữ cho Chứng từ thanh toán tương đối nhỏ.

Đối tượng Thanh toán sẽ tự động có ID và chỉ mục riêng của nó. Có thể bạn cũng sẽ muốn thêm chỉ mục trên tham chiếu Khách hàng.

Điều này sẽ cho phép bạn nhanh chóng tìm kiếm các Khoản thanh toán của Khách hàng mà không cần lưu trữ toàn bộ đối tượng khách hàng mọi lúc.

Nếu bạn muốn trả lời các câu hỏi như "Số tiền trung bình mà tất cả các khách hàng đã trả vào tháng trước" thay vào đó bạn sẽ muốn có một bản đồ / thu nhỏ cho bất kỳ tập dữ liệu lớn nào. Bạn không nhận được phản hồi này "thời gian thực". Bạn sẽ thấy rằng việc lưu trữ "tham chiếu" cho Khách hàng có lẽ là đủ tốt cho việc thu nhỏ bản đồ này.

Vì vậy, để trả lời trực tiếp câu hỏi của bạn: MongoDB được thiết kế để thích nhiều, nhiều tài liệu nhỏ hay ít tài liệu lớn hơn?

MongoDB được thiết kế để tìm các mục nhập được lập chỉ mục rất nhanh chóng. MongoDB rất giỏi trong việc tìm kiếm một vài kim tiêm trong một đống cỏ khô lớn. MongoDB là không rất giỏi trong việc tìm kiếm hầu hết của những chiếc kim trong đống cỏ khô. Vì vậy, hãy xây dựng dữ liệu của bạn xung quanh các trường hợp sử dụng phổ biến nhất và viết bản đồ / giảm bớt công việc cho các trường hợp sử dụng hiếm hơn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $ oid so với ObjectId

  2. pymongo:tên 'ISODate' không được xác định

  3. Làm thế nào để xử lý đúng cách di chuyển giản đồ mongoose?

  4. Cách trả về giá trị duy nhất của một trường trong mongodb

  5. Làm cách nào để chuyển đổi một trường boolean trong một tài liệu với phép toán nguyên tử?