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

Có thể truy vấn MongoDB nhiều lần cho mỗi yêu cầu không?

Để trả lời câu hỏi về $ in ....

Tôi đã thực hiện một số kiểm tra hiệu suất với tình huống sau:

~ 24 triệu tài liệu trong một bộ sưu tập
Tra cứu 1 triệu tài liệu đó dựa trên một khóa (được lập chỉ mục)
Sử dụng trình điều khiển CSharp từ .NET

Kết quả:
Truy vấn 1 lần, đơn luồng:109 giây
Truy vấn 1 lần, đa luồng:48 giây
Truy vấn 100K cùng một lúc bằng cách sử dụng $ in, đơn luồng =20 giây
100 nghìn cùng một lúc bằng cách sử dụng $ in, đa luồng =9 giây

Vì vậy, hiệu suất tốt hơn đáng kể khi sử dụng $ in lớn (bị giới hạn ở kích thước truy vấn tối đa).

Cập nhật: Tiếp theo từ các nhận xét bên dưới về cách $ in hoạt động với các kích thước chunk khác nhau (truy vấn đa luồng):

Truy vấn 10 lần một lúc (100000 lô) =8,8 giây
Truy vấn 100 cùng một lúc (10000 lô) =4,32 giây
Truy vấn 1000 cùng một lúc (1000 lô) =4,31 giây
Truy vấn 10000 tại một thời điểm (100 lô) =8,4 giây
Truy vấn 100000 tại một thời điểm (10 lô) =9 giây (mỗi kết quả gốc ở trên)

Vì vậy, có vẻ là một điểm ngọt ngào để biết có bao nhiêu giá trị tổng hợp thành một mệnh đề $ in so với số lượng chuyến đi khứ hồi




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Định hình lại tài liệu MongoDB

  2. $ lookup trả về mảng trống

  3. So sánh các mảng và trả về sự khác biệt

  4. Cập nhật số lượng lớn các bản ghi trong một bộ sưu tập

  5. Mongodb Aggregation framework có nhanh hơn map / Reduce không?