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

MongoDB-এ ইনডেক্স বাদ দিয়ে BasicCursor বাধ্য করা

MongoDB-এ hint() ব্যবহার করে ফোর্স ফুল টেবল স্ক্যান (BasicCursor)

MongoDB-এ কুয়েরি অপ্টিমাইজার স্বয়ংক্রিয়ভাবে ইনডেক্স ব্যবহার করে। কিন্তু টেস্টিং বা বিশেষ পরিস্থিতিতে ইনডেক্স বাদ দিয়ে ফুল কালেকশন স্ক্যান (BasicCursor) বাধ্য করতে hint() মেথড ব্যবহার করা হয়।

উদাহরণ: ইনডেক্স তৈরি এবং ডেটা ইনসার্ট

> db.demo31.createIndex({"StudentFirstName":1});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.demo31.insertOne({"StudentFirstName":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e174f8fcfb11e5c34d898c1") }
> db.demo31.insertOne({"StudentFirstName":"Jace"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e174f97cfb11e5c34d898c2") }
> db.demo31.insertOne({"StudentFirstName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e174f9ccfb11e5c34d898c3") }
> db.demo31.insertOne({"StudentFirstName":"James"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e174fa0cfb11e5c34d898c4") }

সমস্ত ডকুমেন্ট

> db.demo31.find();
{ "_id" : ObjectId("5e174f8fcfb11e5c34d898c1"), "StudentFirstName" : "John" }
{ "_id" : ObjectId("5e174f97cfb11e5c34d898c2"), "StudentFirstName" : "Jace" }
{ "_id" : ObjectId("5e174f9ccfb11e5c34d898c3"), "StudentFirstName" : "Chris" }
{ "_id" : ObjectId("5e174fa0cfb11e5c34d898c4"), "StudentFirstName" : "James" }

BasicCursor বাধ্য করার কুয়েরি

> db.demo31.find({"StudentFirstName": {$regex: '^Ja'}}).hint({ $natural: 1});

ফলাফল

{ "_id" : ObjectId("5e174f97cfb11e5c34d898c2"), "StudentFirstName" : "Jace" }
{ "_id" : ObjectId("5e174fa0cfb11e5c34d898c4"), "StudentFirstName" : "James" }

ব্যাখ্যা

  • hint({ $natural: 1 }): ন্যাচারেল অর্ডার (ইনসারশন অর্ডার) ব্যবহার করে ফুল কালেকশন স্ক্যান বাধ্য করে।
  • $regex: '^Ja': "Ja" দিয়ে শুরু হওয়া নাম খুঁজে।
  • ইনডেক্স থাকা সত্ত্বেও hint() ইনডেক্স এড়িয়ে BasicCursor ব্যবহার করে।

কখন ব্যবহার করবেন?

  • ইনডেক্স পারফরম্যান্স টেস্ট করার সময়।
  • ছোট কালেকশনে ইনডেক্স ওভারহেড এড়াতে।
  • ডিবাগিং বা এক্সপ্লেইন প্ল্যান চেক করার সময়।

সতর্কতা: প্রোডাকশনে বড় কালেকশনে এটি পারফরম্যান্স ভাঙতে পারে।

  1. এক্সেল INDEX ফাংশন ব্যবহারের পদ্ধতি

  2. এক্সেলে INDEX এবং MATCH ফাংশন একসাথে ব্যবহার করার পদ্ধতি

  3. MongoDB-এ কম্পাউন্ড মাল্টিকি ইন্ডেক্স তৈরি করা (ensureIndex)

  4. ম্যাকে Force Quit কমান্ড ব্যবহার করার উপায়