Index কী এবং কেন প্রয়োজন?

Indexes এবং Query Optimization - টাইনিডিবি (TinyDB) - Database Tutorials

358

Index কী?

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


Index এর প্রয়োজনীয়তা

ডাটাবেস বড় হওয়ার সাথে সাথে ডেটা খোঁজার প্রক্রিয়া ধীর হয়ে যেতে পারে। Index এর মাধ্যমে ডেটা অনুসন্ধান এবং অপারেশনগুলোকে দ্রুততর করা হয়। এর কিছু প্রধান কারণ ও প্রয়োজনীয়তা হলো:

১. দ্রুত অনুসন্ধান

ডেটার দ্রুত অনুসন্ধান নিশ্চিত করতে Index অপরিহার্য। উদাহরণস্বরূপ, একটি বড় টেবিলে যদি ডেটা খুঁজতে হয়, Index ব্যবহার করে সহজেই তা পাওয়া যায়।

২. কোয়ারি অপ্টিমাইজেশন

ডাটাবেসে জটিল SELECT, UPDATE, বা DELETE কোয়ারি চালানোর সময় Index কোয়ারি পারফরম্যান্স বাড়ায়।

৩. পড়ার গতি বৃদ্ধি

Index তৈরি করলে ডেটা পড়ার গতি উল্লেখযোগ্যভাবে বৃদ্ধি পায়, বিশেষ করে যখন ডেটা টেবিল বড় হয়।

৪. ইনডেক্সের মাধ্যমে সাজানো ডেটা

Index ব্যবহার করে ডেটা সরাসরি সাজানো (ordered) অবস্থায় রাখা যায়। এটি ORDER BY বা GROUP BY কোয়ারির পারফরম্যান্স বাড়ায়।

৫. প্রাথমিক ও বাইরের কী অনুসন্ধান

Primary Key এবং Foreign Key-এর ভিত্তিতে ডেটা দ্রুত খুঁজে পাওয়ার জন্য Index ব্যবহার করা হয়।


কিভাবে Index কাজ করে?

Index মূলত টেবিলের একটি বা একাধিক কলামের উপর ভিত্তি করে একটি গাছ (tree) বা হ্যাশ (hash) স্ট্রাকচার তৈরি করে। এটি দ্রুত অনুসন্ধান করার জন্য ডেটার রেফারেন্স ধরে রাখে।
যখন কোয়ারি চালানো হয়:

  • Index প্রথমে সংশ্লিষ্ট ডেটার অবস্থান শনাক্ত করে।
  • এরপর সেই অবস্থান থেকে মূল ডেটা রিট্রাইভ করা হয়।

Index এর প্রকারভেদ

ডাটাবেসে বিভিন্ন ধরনের Index ব্যবহৃত হয়, যেমন:

১. Primary Index

  • এটি টেবিলের Primary Key-এর উপর ভিত্তি করে তৈরি হয়।
  • প্রতিটি রেকর্ডকে অনন্যভাবে চিহ্নিত করে।

২. Unique Index

  • এই Index নিশ্চিত করে যে নির্দিষ্ট কলামের মান অনন্য থাকবে।

৩. Clustered Index

  • Clustered Index ডেটাকে ফিজিক্যালি সাজিয়ে রাখে।
  • একটি টেবিলে শুধুমাত্র একটি Clustered Index থাকতে পারে।

৪. Non-Clustered Index

  • এটি ডেটা ফিজিক্যালি সাজায় না কিন্তু ডেটার রেফারেন্স প্রদান করে।
  • একটি টেবিলে একাধিক Non-Clustered Index থাকতে পারে।

৫. Full-Text Index

  • টেক্সট সার্চ অপারেশনের জন্য ব্যবহৃত হয়।

উদাহরণ

Index তৈরি করা:

CREATE INDEX idx_name ON users(name);

Index সহ অনুসন্ধান:

SELECT * FROM users WHERE name = 'Aziz';

Index সরানো:

DROP INDEX idx_name;

Index এর সুবিধা

  1. অনুসন্ধান দ্রুততর করা: বড় ডাটাবেসে ডেটা খোঁজার সময় সময় বাঁচায়।
  2. কোয়ারি পারফরম্যান্স উন্নত করা: বড় ও জটিল কোয়ারির সময় গতি বাড়ায়।
  3. Ordered ডেটা প্রদান: ডেটাকে স্বয়ংক্রিয়ভাবে সাজিয়ে রাখে।
  4. Primary এবং Foreign Key ব্যবস্থাপনা সহজ: টেবিলের রিলেশনশিপ বজায় রাখতে সাহায্য করে।

Index এর সীমাবদ্ধতা

  1. ডেটা লেখার গতি কমানো: ডেটা INSERT, UPDATE, বা DELETE করার সময় Index আপডেট হওয়ায় কিছুটা সময় বেশি লাগে।
  2. ডিস্ক স্পেস খরচ: Index তৈরি করার জন্য অতিরিক্ত স্টোরেজ প্রয়োজন।
  3. অপ্রয়োজনীয় Index: যদি অনেক Index তৈরি করা হয়, তবে তা পারফরম্যান্সের পরিবর্তে ক্ষতি করতে পারে।

সারাংশ

Index ডাটাবেসের একটি অপরিহার্য অংশ, যা ডেটা দ্রুত অনুসন্ধান ও কোয়ারি পারফরম্যান্স বাড়ানোর জন্য ব্যবহৃত হয়। তবে Index ব্যবহারের সময় শুধুমাত্র প্রয়োজনীয় ক্ষেত্রে তা ব্যবহার করা উচিত, যাতে লেখার পারফরম্যান্স ও ডিস্ক স্পেসের অপচয় না হয়।

Content added By
Promotion

Are you sure to start over?

Loading...