এটি ডেটা বিতরণের উপর নির্ভর করে।
কল্পনা করুন যে আমার কাছে 1000 টি ঘনিষ্ঠভাবে টাইপ করা পৃষ্ঠা রয়েছে এবং আমার বইয়ের একমাত্র শব্দগুলি হ্যাঁ 'এবং' না 'বারবার বারবার হয়েছে এবং এলোমেলোভাবে বিতরণ করা হয়েছে। যদি আমাকে 'হ্যাঁ' এর সমস্ত দৃষ্টান্তটি বৃত্তাকারে জিজ্ঞাসা করা হয়, তবে বইয়ের পিছনে কোনও সূচি সাহায্য করবে? এটা নির্ভর করে.
যদি হ্যাঁ এবং না এর অর্ধ-দেড়টা এলোমেলো বিতরণ হয় তবে সূচীতে সন্ধান করা কোনও উপকারে আসবে না। সূচীটি বইটি অনেক বড় করে তুলেছে এবং যাইহোক আমি সামনের দিক থেকে শুরু করে প্রতিটি পৃষ্ঠাতে 'হ্যাঁ' এর সমস্ত দৃষ্টান্ত অনুসন্ধান করে সেগুলি প্রদক্ষিণ করার পরিবর্তে দ্রুত কাজ করব, প্রতিটি আইটেমটি অনুসন্ধান না করে সূচক এবং তারপরে সূচকের এন্ট্রি থেকে সেই পৃষ্ঠাটিতে রেফারেন্স গ্রহণ করে।
তবে যদি বলুন, আমার হাজার পৃষ্ঠাগুলির বইটিতে 'হ্যাঁ' এর দশটি উদাহরণ এবং সমস্ত কিছুই কেবল কয়েক মিলিয়ন না, তবে একটি সূচক 'হ্যাঁ' এর দশটি উদাহরণ খুঁজে পেতে এবং সেগুলিকে প্রদক্ষিণ করতে আমার অনেক সময় বাঁচাতে পারে ।
এটি ডাটাবেসে একই। যদি এটি একটি 50:50 বিতরণ হয়, তবে কোনও সূচক সাহায্য করবে না - ডাটাবেস ইঞ্জিনটি শুরু থেকে শেষের (সম্পূর্ণ টেবিল স্ক্যান) উপাত্ত দিয়ে হালকা জোড় করা ভাল, এবং সূচকটি কেবল ডাটাবেসকে আরও বড় করে তুলবে, এবং লিখতে এবং আপডেট করতে ধীর। তবে এটি যদি 4000: 1 বিতরণের মতো হয় ( এই থ্রেডে আউসিল অনুসারে ), তবে কোনও সূচক সন্ধানটি এটির গতি বাড়িয়ে তুলতে পারে, যদি এটি 4000 আইটেমগুলির মধ্যে আপনি 1 খুঁজছেন।