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

MongoDB:hiệu suất truy vấn bị giảm sút

Thứ nhất:Các truy vấn của bạn quá phức tạp. Sử dụng $ elemMatch theo cách quá thường xuyên. 2 và:nếu bạn có thể đưa khóa phân đoạn của mình vào truy vấn, nó sẽ cải thiện đáng kể tốc độ.

Tôi sẽ tối ưu hóa các truy vấn của bạn cho bạn:

db.user.find({
     createdAt: {
          $gte: ISODate("2014-12-01"), 
          $lte: ISODate("2014-12-31")
     }
}).explain()

db.user.find({
    'transaction.product':'mobile'
}).explain()

db.user.find({
    'transaction.product':'mobile', 
    firstTransaction:{
       $in:[
           ISODate("2015-01-01"),
           ISODate("2015-01-02")
       ]
    }
}).explain()

Điểm mấu chốt là thế này:bao gồm khóa phân đoạn của bạn mỗi lần để tiết kiệm thời gian.

Nó thậm chí có thể tiết kiệm thời gian để lặp lại các khóa phân đoạn của bạn và thực hiện cùng một truy vấn nhiều lần.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kết hợp đối sánh trên trường văn bản với tổng hợp

  2. Giá trị ngày giờ trong MongoDB không được lưu trữ đúng

  3. Tìm kiếm toàn văn bản trong MongoDB + cách giải quyết cho khớp một phần từ

  4. Tự động hóa triển khai cơ sở dữ liệu MongoDB

  5. Lọc tài liệu theo khoảng cách được lưu trữ trong tài liệu với $ gần