scanAndOrder: true
trong đầu ra giải thích chỉ ra rằng truy vấn đang phải truy xuất các tài liệu và sau đó sắp xếp chúng trong bộ nhớ trước khi đầu ra được trả lại. Đây là một hoạt động tốn kém và sẽ có tác động đến hiệu suất của truy vấn của bạn.
Sự tồn tại của scanAndOrder: true
cũng như sự khác biệt về nscanned
một n
trong đầu ra giải thích chỉ ra rằng truy vấn không sử dụng chỉ mục tối ưu. Trong trường hợp này, có vẻ như cần thực hiện quét bộ sưu tập. Bạn có thể giảm bớt vấn đề này bằng cách đưa các khóa chỉ mục vào sort
của mình tiêu chuẩn. Từ thử nghiệm của tôi:
db.posts.find({hashtags: /^noticias/ }).limit(15).sort({hashtags:1, rank : -1}).explain()
Không yêu cầu quét và đặt hàng và trả về n
và nscanned
số lượng bản ghi bạn đang tìm kiếm. Điều này cũng có nghĩa là sắp xếp theo hashtags
, có thể hữu ích hoặc có thể không hữu ích cho bạn, nhưng sẽ tăng hiệu suất của truy vấn.