এই অধ্যায়টি মংগোডিবি ক্যুয়ারি পারফরমেন্স বিশ্লেষণ নিয়ে পরিচিত করা হয়েছে, SQL এর explain এমন করে, মংগোডিবি ওয়াওয়ানি সাপোর্ট করে বিশ্লেষণ করতে।

মৌলিক ব্যবহার

explain ফাংশন কল করে, আপনি বিশ্লেষণ ফলাফল পেতে পারেন

// find মেথডের বিশ্লেষণ ফলাফল
db.collection.find({}).explain();

// aggregate মেথডের বিশ্লেষণ ফলাফল
db.collection.explain().aggregate([]);

explain এর তিনটি মোড আছে:

  • queryPlanner (ডিফল্ট)
  • executionStats
  • allPlansExecution

ব্যাখ্যা:

  • queryPlanner ব্যবহার করা হয় সমস্ত সম্ভাব্য বৈধকরণ পরিকলনি তালিকা করে, বর্তমানে যেটি জিতেছে তা বিশ্লেষণ সম্ভব মধ্যে না করে এবং winningPlan প্ল্যান প্রদর্শন করে।
  • executionStats ব্যবহার করা হয় winningPlan প্ল্যান কেবল বহুগুণিত করে এবং ফলাফল আউটপুট করে।
  • allPlansExecution ব্যবহার করা হয় সমস্ত প্ল্যান বহুগুণিত করে এবং ফলাফল আউটপুট করে।

বিভিন্ন মোড ব্যবহার

// executionStats মোড, একটি প্যারামিটার এক করে নির্দেশ করে বিশ্লেষণ ফাংশনে
db.collection.find({}).explain('executionStats');

// allPlansExecution মোড
db.collection.find({}).explain('allPlansExecution');

ব্যাখ্যা কন্টেন্ট বিশ্লেষণ

queryPlanner কন্টেন্ট

তথ্য নিরাপত্তা অনুসারে explain দ্বারা ডিফল্ট কন্টেন্ট ফিরোন, গুরুত্বপূর্ণ মান অগ্রহণ করে

{
	"queryPlanner" : {
		"plannerVersion" : 1,
		"namespace" : "test.orders",
		"indexFilterSet" : false, // গুরুত্বপূর্ণ মেট্রিক, কি ইনডেক্স ফিল্টারিং ডাটা ব্যবহার করা হয়েছে
		"winningPlan" : {
			"stage" : "COLLSCAN",  // গুরুত্বপূর্ণ মেট্রিক, পর্যায়ের নাম. প্রতিটি পর্যায়ের উপর পর্যায় বিশেষ তথ্য রয়েছে, উদাহরণস্বরূপ, COLLSCAN সম্পূর্ণ সংগ্রহের সমস্ত কন্টেন্ট স্ক্যান করা প্রতিনির্ভর করে
			"direction" : "forward"
		},
		"rejectedPlans" : [ ]
	}
	...
}

পর্যায়ের ধরণগুলি নিম্নলিখিত:

  • COLLSCAN: পূর্ণ টেবিল স্ক্যান
  • IXSCAN: ইনডেক্স স্ক্যান
  • FETCH: ইনডেক্সের ভিত্তিতে বিশেষ ডকুমেন্ট আনা
  • SHARD_MERGE: প্রতিটি শার্ড দ্বারা ফেরত পাঠানো তথ্য মার্জ
  • SORT: মেমোরিতে সরাবোচনা করা আছে
  • LIMIT: ফিরোনোর সংখ্যা সীমিত করুন
  • SKIP: ব্যবহার করা ছাড়া
  • IDHACK: _id এর জন্য অনুসন্ধান
  • SHARDING_FILTER: mongos দ্বারা শার্ড ডাটা সংশোধন করুন
  • COUNT: ব্যবহার করা হয় db.coll.explain().count() বা অনুরূপ
  • COUNTSCAN: ইনডেক্স ব্যবহার করা না করতে সংখ্যা কোন্টেন্ট ব্যবহারে স্টেজ ফিরোন
  • COUNT_SCAN: সংখ্যা অনুসন্ধানেই ইনডেক্স ব্যবহার করা হলে অনুসন্ধানের স্টেজ ফিরোন
  • SUBPLA: ইনডেক্স ব্যবহার না করে $or অনুসন্ধানের জন্য স্টেজ ফিরোন
  • TEXT: পূর্ণ টেক্সট ইনডেক্স ব্যবহার করে প্রশ্ন পিঁয়ের জন্য স্টেজ ফিরোন
  • PROJECTION: ফোরন ধ্বনি সীমাবদ্ধ করার জন্য ফোরন প্রশ্নের ফোরন প্রদর্শন প্রদর্শন

নির্বাচন পরিস্কারক ধারণাসমূহ

অনুমান করুন:

  • সম্ভাব্য মতবিদাকে সোধা মোটো
  • কম সংবেদনশীল ডকুমেন্ট স্ক্যান হলে, সোধা হবেনা