Để 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