Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Tạo hệ thống hiệu năng đếm tag trên dataset động lớn trong MongoDB

Tạo index trên trường mảng, dùng explain() để phân tích execution plan và xác nhận dùng index (IXSCAN).

Tạo collection demo278, index trên Subjects, insert dữ liệu:

> db.demo278.ensureIndex({"Subjects":1});
> db.demo278.insertOne({"Subjects":["MySQL","MongoDB","Java"]});
> db.demo278.insertOne({"Subjects":["C","C++"]});
> db.demo278.insertOne({"Subjects":["Spring","Hibernate"]});

Kiểm tra performance truy vấn $in trên Subjects:

> db.demo278.find({Subjects:{$in:["Spring","MongoDB"]}}).explain();

Kết quả explain cho thấy winningPlan dùng IXSCAN trên index "Subjects_1", isMultiKey=true:

{
   "queryPlanner": {
      "winningPlan": {
         "stage": "FETCH",
         "inputStage": {
            "stage": "IXSCAN",
            "keyPattern": {"Subjects":1},
            "indexName": "Subjects_1",
            "isMultiKey": true,
            ...
         }
      }
   },
   "ok": 1
}

Kết luận: Multi-key index trên mảng cho phép truy vấn $in hiệu quả trên dataset lớn.