Rate this post

# 1. db.collection.getPlanCache ()

Sử dụng đối tượng query plan cache của một collection cho phép bạn truy cập phương pháp này. Chúng ta cần sử dụng phương thức db.collection.getPlanCache () để truy xuất đối tượng bộ đệm kế hoạch. Phương thức này trả về một giao diện đã được sử dụng cho bộ sưu tập để truy cập vào bộ đệm ẩn kế hoạch truy vấn và cung cấp một phương pháp để xem và xóa bộ đệm ẩn kế hoạch truy vấn.

Các bài viết liên quan:

Các hình dạng truy vấn có thể được lưu vào bộ nhớ đệm bởi trình tối ưu hóa truy vấn có nhiều hơn một kế hoạch có thể triển khai.

Các phương pháp sau có sẵn thông qua giao diện:

  • PlanCache.help: Phương thức này có thể truy cập được thông qua đối tượng bộ đệm kế hoạch của bộ sưu tập được chỉ định.
  • PlanCache.listQueryShapes (): Phương thức này có thể truy cập thông qua đối tượng bộ đệm kế hoạch của bộ sưu tập được chỉ định và hiển thị các hình dạng truy vấn mà kế hoạch truy vấn được lưu trong bộ nhớ cache tồn tại, tức là db.collection.getPlanCache (). ListQueryShapes ().
  • PlanCache.getPlansByQuery (): Phương thức này có thể truy cập được thông qua đối tượng bộ đệm kế hoạch của bộ sưu tập được chỉ định và hiển thị các kế hoạch truy vấn đã lưu trong bộ nhớ cache cho hình dạng truy vấn đã được tranh luận., Tức là db.collection.getPlanCache (). GetPlansByQuery ().
  • PlanCache.clearPlansByQuery (): Phương thức này có thể truy cập được thông qua đối tượng bộ đệm kế hoạch của một bộ sưu tập cụ thể và xóa các kế hoạch truy vấn đã lưu trong bộ nhớ cache cho hình dạng truy vấn đã tranh luận., Tức là db.collection.getPlanCache (). ClearPlansByQuery ()
  • PlanCache.clear (): Phương thức này có thể truy cập được thông qua đối tượng bộ đệm kế hoạch của một bộ sưu tập cụ thể và xóa tất cả các kế hoạch truy vấn đã lưu trong bộ nhớ cache cho một bộ sưu tập., Tức là db.collection.getPlanCache (). Clear ()

# 2. PlanCache.clear ()

Phương thức rõ ràng chỉ có sẵn từ các đối tượng của bộ đệm ẩn kế hoạch để loại bỏ tất cả các kế hoạch truy vấn đã lưu trong bộ nhớ cache cho bộ sưu tập được chỉ định.

Ví dụ – Xóa bộ nhớ cache cho tập hợp sinh viên.

db.student.getPlanCache (). clear ()

# 3. PlanCache.clearPlansByQuery ()

Phương pháp này xóa các kế hoạch truy vấn được lưu trong bộ nhớ cache cho hình dạng truy vấn được chỉ định và có sẵn từ đối tượng bộ đệm kế hoạch của một bộ sưu tập cụ thể; I E.

db.collection.getPlanCache (). clearPlansByQuery (<query>, <projection>, <sort>)

Phương thức PlanCache.clearPlansByQuery () chấp nhận các tham số sau:

Query document: Tham số này là vị từ truy vấn của hình dạng truy vấn. Cấu trúc của vị từ và tên trường có ý nghĩa đối với hình dạng và các giá trị trong vị từ truy vấn là không đáng kể.

Projection document: Đây là tham số tùy chọn, bắt buộc nếu chỉ định tham số sắp xếp. Nó có thể được sử dụng cho phép chiếu được liên kết với hình dạng truy vấn.

Ví dụ

Nếu đơn đặt hàng thu tiền có dạng truy vấn sau:

{  
  "query" : { "qty" : { "$gt" : 10 } },  
  "sort" : { "ord_date" : 1 },  
  "projection" : { },  
  "queryHash" : "9ABAD95BE" // Available starting in MongoDB 4.2  
}  

Thao tác sau đây loại bỏ kế hoạch truy vấn được lưu trong bộ nhớ cache cho hình dạng:

db.orders.getPlanCache().clearPlansByQuery(  
   { "qty" : { "$gt" : 10 } },  
   { },  
   { "ord_date" : 1 }  
)  

Đầu ra:

#4. PlanCache.help ()

Hiển thị các phương pháp có sẵn để xem và sửa đổi bộ đệm kế hoạch truy vấn của bộ sưu tập. Phương thức này chỉ có sẵn từ đối tượng bộ đệm kế hoạch của một bộ sưu tập cụ thể; I E.

db.collection.getPlanCache (). help ()

# 5. PlanCache.listQueryShapes ()

Phương pháp này không được chấp nhận từ phiên bản 4.2 và được sử dụng để hiển thị các hình dạng truy vấn mà các kế hoạch truy vấn được lưu trong bộ nhớ cache tồn tại. Bạn có thể sử dụng phương pháp này nếu bạn đang sử dụng phiên bản MongoDB cũ hơn. Tất cả các hình dạng truy vấn được liên kết với hàm băm truy vấn để giúp xác định các truy vấn chậm có cùng hình dạng truy vấn.

Cú pháp:

db.collection.getPlanCache (). listQueryShapes ()

Ví dụ:

db.orders.getPlanCache (). listQueryShapes ()

Bộ sưu tập đơn đặt hàng có kế hoạch tính tiền được liên kết với hình dạng truy vấn. Phương thức này sẽ trả về một mảng hình dạng truy vấn hiện đang ở bên trong bộ đệm.

[  
  {  
    "query" : { "qty" : { "$gt" : 10 } },  
    "sort" : { "ord_date" : 1 },  
    "projection" : { },  
    "queryHash" : "9AAABD95BE"   
  {  
    "query" : { "$or" :  
       [  
         { "qty" : { "$gt" : 15 }, "item" : "xyza123" },  
         { "status" : "A" }  
       ]  
    },  
    "sort" : { },  
    "projection" : { },  
    "queryHash" : "0A087AD0"    
  },  
  {  
    "query" : { "$or" : [ { "qty" : { "$gt" : 15 } }, { "status" : "A" } ] },  
    "sort" : { },  
    "projection" : { },  
    "queryHash" : "DADA43B020"  
  }  
]  

Leave a Reply

Call now
%d bloggers like this: