কম্পিউটার টিউটোরিয়াল

MongoDB-এ explain('executionStats') দিয়ে কোয়ারি এক্সিকিউশন পরিসংখ্যান দেখা

MongoDB-এ explain() ব্যবহার করে কোয়ারি প্ল্যান ও এক্সিকিউশন স্ট্যাটস বিশ্লেষণ

explain("executionStats") মোডে কোয়ারি কীভাবে এক্সিকিউট হয়েছে (ইন্ডেক্স ব্যবহার হলো কিনা, কত ডকুমেন্ট স্ক্যান হলো, কতক্ষণ লাগলো) বিস্তারিত দেখা যায়। এটি কোয়ারি অপ্টিমাইজেশনের জন্য অপরিহার্য।

উদাহরণ: ডেটা ইনসার্ট

> db.demo157.insertOne({"Status":"Active"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e354fdffdf09dd6d08539fc") }
> db.demo157.insertOne({"Status":"InActive"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e354fe3fdf09dd6d08539fd") }

সব ডকুমেন্ট দেখানো

> db.demo157.find();

আউটপুট:

{ "_id" : ObjectId("5e354fdffdf09dd6d08539fc"), "Status" : "Active" }
{ "_id" : ObjectId("5e354fe3fdf09dd6d08539fd"), "Status" : "InActive" }

explain("executionStats") কোয়ারি

> db.demo157.find({Status: { $in: ['Active','InActive'] }}).explain("executionStats");

আউটপুট (সংক্ষিপ্ত):

{
  "queryPlanner": {
    "winningPlan": { "stage": "COLLSCAN", "filter": { "Status": { "$in": ["Active", "InActive"] } } }
  },
  "executionStats": {
    "executionSuccess": true,
    "nReturned": 2,
    "executionTimeMillis": 18,
    "totalDocsExamined": 2,
    "executionStages": { "stage": "COLLSCAN", "nReturned": 2, "docsExamined": 2 }
  },
  "serverInfo": { "host": "DESKTOP-QN2RB3H", "port": 27017, "version": "4.0.5" },
  "ok": 1
}

ব্যাখ্যা

  • winningPlan.stage: "COLLSCAN" — কালেকশন স্ক্যান (ফুল স্ক্যান) হয়েছে, ইন্ডেক্স ব্যবহার হয়নি।
  • totalDocsExamined: 2 — ২টি ডকুমেন্ট পড়তে হয়েছে।
  • executionTimeMillis: 18 — এক্সিকিউশন টাইম।
  • যদি Status ফিল্ডে ইন্ডেক্স থাকত, তবে IXSCAN দেখতাম।

মোডগুলো: queryPlanner (ডিফল্ট, শুধু প্ল্যান), executionStats (রান করে স্ট্যাটস), allPlansExecution (সকল প্ল্যান রান করে)।

টিপস: totalKeysExamined: 0 হলে ইন্ডেক্স ব্যবহার হয়নি। ইন্ডেক্স তৈরি করুন।

  1. MongoDB-এ _id দিয়ে ডকুমেন্ট আপডেট করা

  2. MongoDB-এ ডISTINCT এলিমেন্টের জন্য MAX ভ্যালু বের করা

  3. MongoDB কালেকশন থেকে সব ফিল্ড নাম দক্ষতার সাথে রিট্রিভ করুন

  4. MongoDB কালেকশনে সকল কি নাম সহজে রিট্রিভ করুন