DocumentDB এবং MongoDB উভয়ই Compound Indexes তৈরি করার অনুমতি দেয়, যা একাধিক ফিল্ডে ইনডেক্স তৈরি করে ডেটাবেসের অনুসন্ধান কার্যক্ষমতা উন্নত করে। Compound Index বিভিন্ন ফিল্ডের উপর ভিত্তি করে একসাথে অনুসন্ধান অপারেশন পরিচালনা করার জন্য ব্যবহৃত হয়, এবং এটি প্রায়শই multiple conditions-এ ভিত্তি করে কুয়েরি অপটিমাইজ করতে সাহায্য করে।
DocumentDB (MongoDB-এর মতো) Compound Index তৈরি করার জন্য createIndex()
ফাংশন ব্যবহার করা হয়। এখানে একটি উদাহরণ দেওয়া হলো, যেখানে একটি Compound Index তৈরি করা হয়েছে দুটি ফিল্ডের উপর, যেমন: name
এবং age
।
ধরা যাক, আপনার একটি users
নামে একটি Collection আছে, যেখানে name এবং age ফিল্ডগুলি রয়েছে, এবং আপনি এই দুটি ফিল্ডে কম্বাইন্ড ইনডেক্স তৈরি করতে চান। তাহলে নিচের মতো কোড ব্যবহার করা হবে:
db.users.createIndex({ "name": 1, "age": 1 })
এখানে:
name: 1
এবং age: 1
নির্দেশ করে যে ইনডেক্সটি ascending order (আসেন্ডিং অর্ডার) অনুসারে তৈরি হবে। আপনি চাইলে descending order (-1
) ব্যবহারও করতে পারেন।createIndex()
ফাংশনটি একটি Compound Index তৈরি করবে যা name
এবং age
উভয় ফিল্ডের জন্য একসাথে অনুসন্ধান করতে সহায়ক হবে।যদি আপনি age
ফিল্ডে descending order চান, তবে আপনাকে ইনডেক্স তৈরি করতে হবে:
db.users.createIndex({ "name": 1, "age": -1 })
এখানে age: -1
ব্যবহার করা হয়েছে, যা descending order নির্দেশ করে, অর্থাৎ age
এর মান বড় থেকে ছোটে অনুসন্ধান করা হবে।
ধরা যাক, আপনি একটি কুয়েরি চালাচ্ছেন যেখানে name এবং age ফিল্ডের উপর ভিত্তি করে ফিল্টার করা হচ্ছে:
db.users.find({ "name": "John", "age": 30 })
এখন, যেহেতু আপনি একটি Compound Index তৈরি করেছেন name
এবং age
এর উপর, DocumentDB বা MongoDB এই কুয়েরি দ্রুতভাবে অনুসন্ধান করবে কারণ এটি ইনডেক্সের মাধ্যমে দ্রুত ফিল্টারিং করতে পারবে।
Unique Compound Index: যদি আপনি চান যে name
এবং age
এর কোনও কম্বিনেশন একাধিক বার প্রদর্শিত না হয়, তাহলে আপনি unique compound index তৈরি করতে পারেন:
db.users.createIndex({ "name": 1, "age": 1 }, { unique: true })
এটি unique constraint যোগ করবে, যার মানে হল যে একই name এবং age সহ দুটি ডকুমেন্ট থাকতে পারবে না।
Partial Index: যদি আপনি শুধুমাত্র কিছু ডকুমেন্টের জন্য ইনডেক্স তৈরি করতে চান, তবে আপনি partial index ব্যবহার করতে পারেন, যেমন:
db.users.createIndex({ "name": 1, "age": 1 }, { partialFilterExpression: { "status": "active" } })
এটি শুধু সেই ডকুমেন্টগুলির জন্য ইনডেক্স তৈরি করবে, যেখানে status
ফিল্ডের মান "active"
।
Compound Indexes DocumentDB (এবং MongoDB)-তে একাধিক ফিল্ডে ইনডেক্স তৈরি করতে ব্যবহৃত হয়, যা ডেটাবেসের কুয়েরি অপারেশনের পারফরম্যান্স উন্নত করতে সাহায্য করে। আপনি ascending বা descending অর্ডারে ইনডেক্স তৈরি করতে পারেন এবং unique বা partial ইনডেক্সের মতো বিভিন্ন কনফিগারেশন ব্যবহার করে আপনার কুয়েরি অপ্টিমাইজ করতে পারেন। Compound Index ব্যবহার করলে ডেটাবেসের পারফরম্যান্স অনেক দ্রুত হয়, বিশেষত যখন একাধিক কন্ডিশন নিয়ে অনুসন্ধান করা হয়।
common.read_more