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

mongodb.countDocuments chậm khi tập hợp kết quả lớn ngay cả khi chỉ mục được sử dụng

Đếm dường như như một trong những thứ đáng ra phải rẻ, nhưng thường thì không. Vì mongo không duy trì số lượng tài liệu phù hợp với các tiêu chí nhất định trong chỉ mục b-tree của nó, nó cần phải quét qua các tài liệu đếm chỉ mục khi nó hoạt động. Điều đó có nghĩa là việc đếm 100x tài liệu sẽ mất gấp 100 lần thời gian và đây gần như là những gì chúng ta thấy ở đây - 0.018 * 100 = 1.8s .

Để tăng tốc độ này, bạn có một số tùy chọn:

  1. Số lượng hoạt động gần như là estimatedDocumentCount() - db.users.countDocuments({status: 'inactive'}) . Điều này có đủ chính xác cho trường hợp sử dụng của bạn không?
  2. Ngoài ra, bạn có thể duy trì counts tài liệu trong một bộ sưu tập riêng biệt mà bạn giữ để đồng bộ hóa với số lượng tài liệu đang hoạt động / không hoạt động mà bạn có.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. cập nhật tài liệu thứ n trong tài liệu mảng lồng nhau trong mongodb

  2. MongoDB đặt giới hạn thành $ inc

  3. Cập nhật phần tử mảng lồng nhau trong mongodb

  4. Laravel Jensseger Mongodb thuộcToMany trả về mảng trống

  5. Cách tạo và tải xuống pdf với đường dẫn hình ảnh động từ cơ sở dữ liệu bằng bất kỳ gói npm nào