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

Chúng ta có nên sử dụng dbref hoặc tài liệu nhúng trong một ứng dụng đọc nhiều không

DBref không giống như một khóa ngoại trong các hệ thống quan hệ truyền thống. Quy ước duy nhất của nó có thể dễ dàng yêu cầu trình điều khiển (người có khả năng) tự động tải các tài liệu được giới thiệu đó. Vui lòng xem DBRef để biết thêm thông tin về điều này.

Tùy thuộc vào trình điều khiển được sử dụng, bạn có thể chỉ tải các tham chiếu đó tự động khi bạn cần chúng (lười biếng), do đó, chi phí hiệu suất phải thực sự nhỏ. Nhưng chi phí lưu trữ cao hơn một chút so với _id được tham chiếu đơn giản của một tài liệu khác. Về cơ bản, tôi sẽ nói rằng bạn chỉ nên sử dụng các DBrefs đó nếu tài liệu được liên kết có thể thuộc loại biến. Nếu nó tĩnh thì bạn bị mắc kẹt với _id-reference và có thể là chức năng của bộ tải lười biếng của riêng bạn, vì vậy bạn không cần lặp lại chính mình.

Đừng lặp lại chính mình (hoặc trùng lặp dữ liệu trong các thuật ngữ cơ sở dữ liệu) cũng áp dụng trong ngữ cảnh của bạn, như MongoDB khuyến nghị (tôi cũng vậy), là chỉ liên kết tài liệu của bạn . Nếu không, bạn sẽ có mức sử dụng bộ nhớ cao hơn và các bản cập nhật chạy hơi lâu, chỉ cập nhật một thực thể logic (thường xuyên bị trùng lặp về mặt vật lý).

Với trình tải lười tùy chỉnh đã đề cập trước đó, bạn có thể thêm một số bộ nhớ đệm để không phải mọi tra cứu đều thực sự dẫn đến tra cứu mongodb. Rất có thể khi đó bạn sẽ cần quan tâm đến tính nhất quán dữ liệu của mình giữa bộ nhớ cache và db.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Xác thực với Spring Security + Spring data + MongoDB

  2. Jackson không thể deserialize đối tượng MongoDB được truyền qua REST

  3. Mongo tìm và cập nhật hàng loạt trường tài liệu phù hợp trong một truy vấn?

  4. Cách tổng hợp phản ứng mongodb trong sao băng

  5. Đang nhập tệp JSON bằng mongimport, tiếp tục nhận được `số nhận dạng không mong muốn '?