AD

 ডাটাবেসে ইনডেক্সিং একটি প্রক্রিয়া যা ডেটা সার্চ করার সময়কে অনেক দ্রুত করে দেয়। ইনডেক্সিং ছাড়া ডেটা খোঁজার প্রক্রিয়া অনেক ধীরগতির হতে পারে, বিশেষ করে যখন ডাটাবেসে রেকর্ডের সংখ্যা অনেক বেশি হয়। 

 ইনডেক্সিং ছাড়া ডেটা সার্চ এবং ইনডেক্সিং সহ ডেটা সার্চ এর সুবিধা গুলা ।

1️⃣ ইনডেক্সিং ছাড়া ডেটা সার্চ:

যখন আপনার ডাটাবেসে ইনডেক্সিং নেই, তখন সার্চ করার জন্য প্রতিটি রেকর্ড একে একে চেক করতে হয়। এটি লিনিয়ার সার্চ (Linear Search) নামে পরিচিত, যেখানে প্রতিটি রেকর্ড একটি নির্দিষ্ট মানের সাথে তুলনা করা হয় যতক্ষণ না পছন্দসই ডেটা পাওয়া যায়। ধরুন, আপনার ডাটাবেসে ২ মিলিয়ন (২০ লক্ষ) রেকর্ড রয়েছে।

উদাহরণ:

  • ধরুন, প্রতিটি রেকর্ড চেক করতে ১ মিলিসেকেন্ড সময় লাগে।
  • তাহলে, গড়ে ১ মিলিয়ন (১০ লক্ষ) রেকর্ড চেক করতে হতে পারে (কারণ কাঙ্ক্ষিত রেকর্ড প্রথমেও থাকতে পারে, আবার শেষে গিয়ে খুঁজে পাওয়া যেতে পারে)।
  • সুতরাং, সময় লাগবে: Time=১০লক্ষ×১ms=১০০০সেকেন্ড=১৬.৬মিনিট\text{Time} = ১০ লক্ষ \times ১ \text{ms} = ১০০০ \text{সেকেন্ড} = ১৬.৬ মিনিট

এই পদ্ধতিতে প্রায় ১৬ মিনিটেরও বেশি সময় লাগতে পারে একটি ডেটা খুঁজে বের করতে।

2️⃣ ইনডেক্সিং সহ ডেটা সার্চ:

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

উদাহরণ:

  • ২ মিলিয়ন রেকর্ডের ক্ষেত্রে বাইনারি সার্চ প্রায় ২১টি চেক করেই কাঙ্ক্ষিত ডেটা খুঁজে পায়।
  • ধরুন, প্রতিটি চেক করতে ১ মিলিসেকেন্ড সময় লাগে।
  • তাহলে, সময় লাগবে: Time=২১×১ms=২১ms\text{Time} = ২১ \times ১ \text{ms} = ২১ \text{ms}

অর্থাৎ, ইনডেক্সিং থাকলে মাত্র ২১ মিলিসেকেন্ডে আপনি ডেটা খুঁজে পেতে পারেন, যা ১৬ মিনিটের তুলনায় অনেক দ্রুত।

🔑 মূল পার্থক্য:

  • ইনডেক্সিং ছাড়া সার্চ করতে প্রায় ১৬ মিনিট লাগতে পারে।
  • ইনডেক্সিং সহ সার্চ করতে ২১ মিলিসেকেন্ড (যা ০.০২১ সেকেন্ড) সময় লাগবে।

কেন ইনডেক্সিং গুরুত্বপূর্ণ?

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

উদাহরণ:

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



  
  // একটি বড় ডেটা সেট, যা অর্ডার করা (sorted) থাকতে হবে
const dataSet = [
    'Ahmed' ,'Abdullah', 'Arif', 'Bashir', 'Farhana', 'Hasan', 
    'Kamal','Mahmud', 'Nabila', 'Rakib', 
    'Sakib','Shishir', 'Swapnil' , 'Tanzim', 'Zahir'
];

// বাইনারি সার্চ ফাংশন
function binarySearch(arr, target) {
    let start = 0;
    let end = arr.length - 1;

    while (start <= end) {
        // মাঝের ইনডেক্স বের করা
        let mid = Math.floor((start + end) / 2);

        // মাঝের ইনডেক্সের ভ্যালু চেক করা
        if (arr[mid] === target) {
            return mid; // ইনডেক্স রিটার্ন
        }
        
        // যদি টার্গেট মাঝের ইনডেক্স থেকে ছোট হয়, শেষের অংশ বাদ দেয়া
        else if (arr[mid] > target) {
            end = mid - 1;
        } 
        
        // যদি টার্গেট মাঝের ইনডেক্স থেকে বড় হয়, শুরুর অংশ বাদ দেয়া
        else {
            start = mid + 1;
        }
    }
    return -1; // যদি ডেটা না পাওয়া যায়
}

// টার্গেট ডেটা খোঁজা
const targetName = 'Mahmud';
const result = binarySearch(dataSet, targetName);

// ফলাফল প্রিন্ট করা
if (result !== -1) {
    console.log(`${targetName} পাওয়া গেছে ইনডেক্সে: ${result}`);
} else {
    console.log(`${targetName} ডেটাবেসে নেই`);
}

  
  

Post a Comment

Previous Post Next Post