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

Việc thực thi truy vấn Mongodb mất quá nhiều thời gian

Có nhiều điều cần làm để tối ưu hóa truy vấn của bạn. Những gì tôi sẽ thử:

  • Như Anthony Winzlet đã nói trong phần bình luận, hãy sử dụng giai đoạn khớp $ như giai đoạn đầu tiên có thể. Bằng cách này, bạn có thể giảm số lượng tài liệu được chuyển đến các giai đoạn sau và sử dụng các chỉ mục.

  • Giả sử bạn sử dụng ít nhất phiên bản 3.6 mongo, hãy thay đổi các giai đoạn tra cứu của bạn bằng cú pháp 'let / pipe' ( xem tại đây ). Bằng cách này, bạn có thể tích hợp 'bộ lọc bên ngoài' ("customer_info.status":{$ ne:9}, "model_info.status":{$ ne:9}) trong giai đoạn $ so khớp trong quy trình tra cứu của bạn. Với các chỉ mục trên các trường / bộ sưu tập bên phải, bạn sẽ có được một số thời gian / bộ nhớ trong các giai đoạn tra cứu $ của mình.

  • Thực hiện các giai đoạn thư giãn của bạn càng muộn càng tốt, để hạn chế số lượng tài liệu được chuyển đến các giai đoạn sau.

Điều quan trọng là phải hiểu cách thức hoạt động của đường ống tổng hợp:mỗi giai đoạn nhận dữ liệu, thực hiện công việc của nó và chuyển dữ liệu sang giai đoạn tiếp theo. Vì vậy, càng ít dữ liệu được chuyển đến đường ống, thì truy vấn của bạn sẽ càng nhanh.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lập phiên bản đối tượng Java MongoDB

  2. Cách tốt nhất để xác thực và cấp phép một giải pháp web và api như MERN Stack là gì?

  3. Không chạy được Mongodb

  4. Hiển thị MongoDB trên Kubernetes với cụm bên ngoài StatefulSets

  5. 'this' không được xác định trong móc lưu trước Mongoose