MongoDB তে ইনডেক্স একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ডেটাবেসে ডেটা অনুসন্ধান (querying) দ্রুত করতে সাহায্য করে। ইনডেক্স তৈরি করা মানে MongoDB কে ডেটার একটি বিশেষ কাঠামো প্রদান করা, যার মাধ্যমে কুয়েরি অপারেশনগুলো আরও দ্রুত সম্পাদিত হয়। MongoDB তে দুটি প্রধান ধরনের ইনডেক্স তৈরি করা যায়: বেসিক ইনডেক্স এবং Compound ইনডেক্স।
1. বেসিক ইনডেক্স (Single Field Index)
বেসিক ইনডেক্স হল একক ফিল্ডের উপর ইনডেক্স তৈরি করা। এটি MongoDB ডেটাবেসের ডেটাকে একক ফিল্ডের মাধ্যমে দ্রুত অনুসন্ধান করতে সহায়ক।
বেসিক ইনডেক্স তৈরি
কমান্ড:
db.myCollection.createIndex({ fieldName: 1 })এখানে
myCollectionহল আপনার কালেকশনের নাম এবংfieldNameহল ইনডেক্স তৈরি করার জন্য নির্বাচিত ফিল্ড।1নির্দেশ করে যে ইনডেক্সটি আশAscending অর্ডারে তৈরি হবে। আপনি চাইলে-1ব্যবহার করে ডাউনওয়ার্ড অর্ডারেও ইনডেক্স তৈরি করতে পারেন।
উদাহরণ:
ধরা যাক, আমাদের users নামে একটি কালেকশন আছে এবং আমরা name ফিল্ডে ইনডেক্স তৈরি করতে চাই।
db.users.createIndex({ name: 1 })
এখানে name ফিল্ডের জন্য একটি বেসিক ইনডেক্স তৈরি হবে, যা আপনাকে name ফিল্ডের ভিত্তিতে দ্রুত অনুসন্ধান করতে সহায়তা করবে।
2. Compound Index (একাধিক ফিল্ডের উপর ইনডেক্স)
Compound ইনডেক্স এমন একটি ইনডেক্স, যা একাধিক ফিল্ডের সমন্বয়ে তৈরি করা হয়। এটি আপনাকে একাধিক ফিল্ডের ভিত্তিতে কুয়েরি অপারেশন দ্রুত করতে সহায়তা করে। MongoDB তে Compound ইনডেক্সের ক্ষেত্রে, আপনি একাধিক ফিল্ড নির্বাচন করতে পারেন এবং তাদের উপর একটি যৌথ ইনডেক্স তৈরি করতে পারেন।
Compound Index তৈরি
কমান্ড:
db.myCollection.createIndex({ field1: 1, field2: -1 })এখানে
field1এবংfield2হল সেই ফিল্ডগুলি যেগুলোর উপর ইনডেক্স তৈরি করতে চান।1এবং-1দিয়ে আপনি ইনডেক্সের অর্ডার নির্দেশ করতে পারেন (অর্থাৎ, একটিকে Ascending এবং অন্যটিকে Descending).
উদাহরণ:
ধরা যাক, আমাদের users কালেকশনে age এবং name ফিল্ড রয়েছে এবং আমরা এই দুটি ফিল্ডের উপর ইনডেক্স তৈরি করতে চাই।
db.users.createIndex({ age: 1, name: -1 })
এখানে age ফিল্ডে Ascending এবং name ফিল্ডে Descending অর্ডারে Compound ইনডেক্স তৈরি হবে। এই ইনডেক্সটি যদি আপনি কুয়েরি করার সময় উভয় ফিল্ডের জন্য একযোগভাবে অনুসন্ধান করেন, তবে এটি অনেক দ্রুত হবে।
3. ইনডেক্সের সুবিধা এবং ব্যবহার
MongoDB তে ইনডেক্স তৈরি করার কিছু গুরুত্বপূর্ণ সুবিধা রয়েছে:
- দ্রুত কুয়েরি অপারেশন: ইনডেক্স কুয়েরি অপারেশন দ্রুত করতে সহায়তা করে, বিশেষ করে যখন আপনি অনেক ডেটা নিয়ে কাজ করছেন।
- কুয়েরি অপ্টিমাইজেশন: MongoDB নিজে থেকেই ইনডেক্স ব্যবহার করে কুয়েরি অপ্টিমাইজেশন করে, যার মাধ্যমে ডেটার দ্রুত অ্যাক্সেস পাওয়া যায়।
- জটিল কুয়েরি সমর্থন: Compound ইনডেক্স একাধিক ফিল্ডের ভিত্তিতে দ্রুত কুয়েরি অপারেশন পরিচালনা করতে সাহায্য করে, যেমন একটি সময়ের মধ্যে বয়স্কদের নাম খোঁজা।
4. ইনডেক্স স্ট্যাটাস এবং পর্যালোচনা
MongoDB তে তৈরি করা ইনডেক্সের স্ট্যাটাস পর্যালোচনা করতে, আপনি getIndexes() কমান্ড ব্যবহার করতে পারেন, যা আপনাকে বর্তমান কালেকশনের সমস্ত ইনডেক্সের তথ্য দেখাবে।
কমান্ড:
db.myCollection.getIndexes()এই কমান্ডটি আপনাকে আপনার কালেকশনে তৈরি সমস্ত ইনডেক্সের তালিকা দেখাবে।
সারাংশ
MongoDB তে ইনডেক্স তৈরি করা ডেটার অনুসন্ধান গতি বৃদ্ধি করে এবং কুয়েরি অপারেশনকে আরও দক্ষ করে তোলে। বেসিক ইনডেক্স একক ফিল্ডের জন্য ব্যবহার করা হয়, যখন Compound ইনডেক্স একাধিক ফিল্ডের উপর তৈরি হয় এবং এটি জটিল কুয়েরি অপারেশনগুলো দ্রুত করতে সহায়ক। MongoDB তে ইনডেক্স ব্যবহার করলে ডেটা সঞ্চালন এবং অনুসন্ধান আরো কার্যকর এবং দ্রুত হয়।
Read more