সূচকের ওভারভিউ

এই বিভাগে ফায়ারস্টোর এন্টারপ্রাইজ সংস্করণের জন্য ইনডেক্সিং সম্পর্কে বর্ণনা করা হয়েছে। ফায়ারস্টোর এন্টারপ্রাইজ সংস্করণ ডিফল্টরূপে কোনো ইনডেক্স তৈরি করে না । খরচ কমাতে এবং ডাটাবেসের কর্মক্ষমতা উন্নত করতে, আপনার সর্বাধিক ব্যবহৃত কোয়েরিগুলোর জন্য ইনডেক্স তৈরি করুন।

একটি ডাটাবেসের পারফরম্যান্সের উপর ইনডেক্সের ব্যাপক প্রভাব রয়েছে। কোনো কোয়েরির জন্য ইনডেক্স থাকলে, ডাটাবেস স্ক্যান করার জন্য প্রয়োজনীয় ডেটার পরিমাণ এবং ফলাফল সর্ট করার জন্য প্রয়োজনীয় কাজ কমিয়ে দক্ষতার সাথে ফলাফল প্রদান করতে পারে। তবে, ইনডেক্স এন্ট্রিগুলো স্টোরেজ খরচ এবং ইনডেক্স করা ফিল্ডে রাইট অপারেশনের সময় সম্পাদিত কাজের পরিমাণ বাড়িয়ে দেয়।

সূচকের সংজ্ঞা এবং কাঠামো

একটি সূচকে নিম্নলিখিত বিষয়গুলো থাকে:

  • একটি সংগ্রহ আইডি
  • প্রদত্ত সংগ্রহে থাকা ক্ষেত্রগুলির একটি তালিকা
  • প্রতিটি ক্ষেত্রের জন্য একটি ক্রম, হয় আরোহী অথবা অবরোহী,

একটি ইনডেক্স স্পার্স বা ইউনিক অপশনগুলোও সক্রিয় করতে পারে।

সূচক ক্রম

প্রতিটি ফিল্ডের ক্রম এবং সাজানোর দিক ইনডেক্সটিকে অনন্যভাবে সংজ্ঞায়িত করে। উদাহরণস্বরূপ, নিম্নলিখিত ইনডেক্সগুলো দুটি স্বতন্ত্র ইনডেক্স এবং পরস্পর পরিবর্তনযোগ্য নয়:

সংগ্রহ ক্ষেত্র
শহরগুলি দেশ (আরোহী), জনসংখ্যা (অবরোহী)
শহরগুলি জনসংখ্যা (অবরোহী), দেশ (আরোহী),

কোনো কোয়েরিকে সমর্থন করার জন্য ইনডেক্স তৈরি করার সময়, ফিল্ডগুলোকে আপনার কোয়েরির ক্রমানুসারেই অন্তর্ভুক্ত করুন।

সূচক ঘনত্ব

ডিফল্টরূপে, ইনডেক্স এন্ট্রিগুলো একটি কালেকশনের সমস্ত ডকুমেন্টের ডেটা সংরক্ষণ করে। এটি একটি নন-স্পার্স ইনডেক্স নামে পরিচিত। কোনো ডকুমেন্টে ইনডেক্সে নির্দিষ্ট করা ফিল্ডগুলোর কোনোটি থাকুক বা না থাকুক, সেই ডকুমেন্টের জন্য একটি ইনডেক্স এন্ট্রি যুক্ত করা হবে। ইনডেক্স এন্ট্রি তৈরি করার সময়, অস্তিত্বহীন ফিল্ডগুলোকে NULL ভ্যালুযুক্ত হিসেবে গণ্য করা হয়। এই আচরণ পরিবর্তন করতে, আপনি ইনডেক্সটিকে একটি স্পার্স ইনডেক্স হিসেবে সংজ্ঞায়িত করতে পারেন।

স্পার্স সূচক

একটি স্পার্স ইনডেক্স কালেকশনের শুধুমাত্র সেই ডকুমেন্টগুলোকেই ইনডেক্স করে, যেগুলোতে ইনডেক্স করা ফিল্ডগুলোর অন্তত একটিতে একটি ভ্যালু (নাল সহ) থাকে। একটি স্পার্স ইনডেক্স স্টোরেজ খরচ কমায় এবং পারফরম্যান্স উন্নত করতে পারে।

অনন্য সূচক

ইনডেক্স করা ফিল্ডগুলোর জন্য অনন্য মান নিশ্চিত করতে ইউনিক ইনডেক্স অপশনটি সেট করুন। একাধিক ফিল্ডের উপর ইনডেক্সের ক্ষেত্রে, প্রতিটি মানের সংমিশ্রণ অবশ্যই ইনডেক্স জুড়ে অনন্য হতে হবে। ডাটাবেস এমন যেকোনো আপডেট এবং ইনসার্ট অপারেশন প্রত্যাখ্যান করে যা ডুপ্লিকেট মান সহ ইনডেক্স এন্ট্রি তৈরি করার চেষ্টা করে। যদি ইনডেক্স করা ফিল্ডগুলোর ডেটাতে ডুপ্লিকেট মান থাকে এবং আপনি একটি ইউনিক ইনডেক্স তৈরি করার চেষ্টা করেন, তাহলে অপারেশন ডিটেইলসে একটি এরর মেসেজ সহ ইনডেক্স বিল্ড ব্যর্থ হবে।

একটি অনন্য সূচকে অনুপস্থিত ক্ষেত্র

যদি আপনি ইউনিক ইনডেক্সের জন্য অনুপস্থিত ফিল্ডসহ কোনো ডকুমেন্ট ইনসার্ট করেন, তাহলে ইনডেক্সটি অনুপস্থিত ফিল্ডগুলোর জন্য null ভ্যালু সেট করে দেয়। ফলস্বরূপ ইনডেক্স এন্ট্রিটি অবশ্যই ইউনিক হতে হবে, অন্যথায় অপারেশনটি ব্যর্থ হয়।

উদাহরণস্বরূপ, এই সূচকটি দিয়ে:

সংগ্রহ সূচীবদ্ধ ক্ষেত্র কোয়েরি স্কোপ
শহরগুলি নাম (আরোহী ক্রমে) সংগ্রহ

যদি আপনি সংগ্রহে {"abbreviation": "LA"} ডকুমেন্টটি যোগ করেন, তাহলে ইউনিক ইনডেক্সটি name null সেট করে একটি এন্ট্রি তৈরি করে। এরপর যদি আপনি {"abbreviation": "NYC"} ডকুমেন্টটি যোগ করার চেষ্টা করেন, তাহলে অপারেশনটি ব্যর্থ হয়, কারণ ইউনিক ইনডেক্সের জন্য তৈরি হওয়া এন্ট্রিটি একই থাকে।

একাধিক ফিল্ডযুক্ত ইউনিক ইনডেক্সের ক্ষেত্রেও একই আচরণ প্রযোজ্য। কোনো ডকুমেন্ট তৈরি বা আপডেট করার সময়, অনুপস্থিত ইনডেক্সড ফিল্ডগুলোকে null সেট করা হয় এবং ফলস্বরূপ ইনডেক্স এন্ট্রিটি অবশ্যই ইনডেক্সের মধ্যে অনন্য হতে হবে।

ইনডেক্স তৈরির ত্রুটি সমাধান করুন

আপনার ইনডেক্সগুলো পরিচালনা করার সময় আপনি ইনডেক্স তৈরির ত্রুটির সম্মুখীন হতে পারেন। ডাটাবেসে ডেটা নিয়ে কোনো সমস্যা দেখা দিলে একটি ইনডেক্সিং অপারেশন ব্যর্থ হতে পারে। নিম্নলিখিত কারণগুলোর জন্য ইনডেক্সিং অপারেশন ব্যর্থ হতে পারে:

  • আপনি ইনডেক্স সীমাতে পৌঁছে গেছেন। উদাহরণস্বরূপ, অপারেশনটি প্রতি ডকুমেন্টে ইনডেক্স এন্ট্রির সর্বোচ্চ সংখ্যায় পৌঁছে যেতে পারে। যদি ইনডেক্স তৈরি ব্যর্থ হয়, আপনি একটি ত্রুটির বার্তা দেখতে পাবেন। যদি আপনি ইনডেক্স সীমাতে না পৌঁছে থাকেন, তবে ইনডেক্স অপারেশনটি পুনরায় চেষ্টা করুন।
  • আপনি ইউনিক ইনডেক্স অপশনটি সেট করেছেন এবং এর ফলে ইনডেক্স করা ফিল্ডগুলোর ডেটা ডুপ্লিকেট ইনডেক্স এন্ট্রি তৈরি করছে। পরবর্তী ধাপে যেতে, ডেটা থেকে ডুপ্লিকেট ভ্যালু কম্বিনেশনগুলো মুছে ফেলুন।

এরপর কী?

ইনডেক্স তৈরি ও পরিচালনা করার পদ্ধতি শিখুন।