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

MongoDB-এ রেকর্ড খুঁজতে বেশি সময় লাগলে কী করবেন? (ইন্ডেক্সিং)

MongoDB-এ ক্যোয়ারি ধীর হলে পারফরম্যান্স বাড়াতে ইন্ডেক্স (Index) তৈরি করুন। ইন্ডেক্স ছাড়া MongoDB পুরো কলেকশন স্ক্যান করে (COLLSCAN), যা ধীর।

ইন্ডেক্স তৈরির সিনট্যাক্স

db.yourCollectionName.createIndex({ yourFieldName: 1 });

এখানে 1 = অ্যাসেন্ডিং, -1 = ডেসেন্ডিং।

পদ্ধতি ১: সিম্পল ফিল্ড ইন্ডেক্স (Single Field Index)

> db.takeLessTimeToSearchDemo.createIndex({ "EmployeeName": 1 });
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }

ব্যবহার: সমতা (equality), রেঞ্জ, সর্টিং ক্যোয়ারির জন্য।

পদ্ধতি ২: টেক্সট ইন্ডেক্স (Text Index)

> db.takeLessTimeToSearchDemo1.createIndex({ "EmployeeName": "text" });
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }

ব্যবহার: ফুল-টেক্সট সার্চ, কেস-ইনসেনসিটিভ, পার্শিয়াল ম্যাচিং। $text অপারেটর দিয়ে ক্যোয়ারি করুন।

পদ্ধতি ৩: হ্যাশড ইন্ডেক্স (Hashed Index)

> db.takeLessTimeToSearchDemo2.createIndex({ "EmployeeName": "hashed" });
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }

ব্যবহার: শার্ডিং (sharding) এর জন্য, সমতা ক্যোয়ারির জন্য ভালো, রেঞ্জ ক্যোয়ারির জন্য নয়।

অন্যান্য গুরুত্বপূর্ণ ইন্ডেক্স টাইপ:

  • Compound Index: { field1: 1, field2: -1 } — একাধিক ফিল্ড একসাথে।
  • Multikey Index: অ্যারে ফিল্ডের জন্য অটোমেটিক তৈরি হয়।
  • Geospatial Index: 2dsphere, 2d — লোকেশন বেসড ক্যোয়ারির জন্য।
  • TTL Index: এক্সপায়ার হওয়া ডেটা অটো ডিলিট করার জন্য।

ইন্ডেক্স যাচাই করা

> db.yourCollectionName.getIndexes();

ক্যোয়ারি প্ল্যান দেখা (Explain)

> db.yourCollectionName.find({ EmployeeName: "John" }).explain("executionStats");

খুঁজুন: "stage": "IXSCAN" (ইন্ডেক্স স্ক্যান) বনাম "stage": "COLLSCAN" (কলেকশন স্ক্যান)।

সতর্কতা: ইন্ডেক্স লেখার গতি কমায়, স্টোরেজ বেড়ায়। শুধু প্রয়োজনীয় ফিল্ডে ইন্ডেক্স দিন।

  1. MongoDB প্রোফাইলার আউটপুট: 'command' অপারেশন কী?

  2. পাইথন লিস্টে একটি উপাদানের ইনডেক্স খুঁজে বের করার পদ্ধতি

  3. উইন্ডোজ ১০-এ লক স্ক্রিন থেকে লগইন স্ক্রিনে যাওয়ায় বেশি সময় লাগা সমস্যা সমাধান

  4. উইন্ডোজ ১০-এ লক স্ক্রিন থেকে লগইন স্ক্রিন লোড হতে বেশি সময় নেওয়া সমস্যা সমাধান