টেরাডেটায় ডেটাবেস টেবিলগুলির মধ্যে দ্রুত ডেটা অনুসন্ধান এবং অ্যাক্সেসের জন্য ইনডেক্স ব্যবহার করা হয়। ইনডেক্স হচ্ছে একটি ডেটা স্ট্রাকচার যা টেবিলের উপর দ্রুত অনুসন্ধান করার সুবিধা প্রদান করে। টেরাডেটায় দুটি মূল ইনডেক্স ব্যবহৃত হয়: Primary Index এবং Secondary Index। এগুলি ডেটাবেসে ডেটা অ্যাক্সেস এবং পারফরম্যান্স উন্নত করতে সাহায্য করে।
Primary Index
Primary Index হলো একটি টেবিলের প্রধান ইনডেক্স যা ডেটাবেসে রেকর্ডগুলিকে বিতরণ করার জন্য ব্যবহৃত হয়। এটি টেবিলের রেকর্ডগুলিকে এক্সেস করার জন্য মূলত ব্যবহৃত হয়, এবং এটি ডেটাবেসের পিক্সেল বা সার্ভারে ডেটা রাখার স্থান নির্ধারণ করে। একে Data Distribution Index ও বলা হয়, কারণ এটি টেবিলের রেকর্ডগুলো বিভিন্ন ডিস্কে বিতরণ করে।
বৈশিষ্ট্য:
- প্রধান ইনডেক্স (Primary Index) একটি নির্দিষ্ট কলামে তৈরি করা হয়।
- এটি ডেটার ইউনিক ডিস্ট্রিবিউশন তৈরি করে।
- এটি ডিফল্ট ইনডেক্স হিসেবে ব্যবহৃত হয় এবং এর সাহায্যে টেবিলের প্রতিটি রেকর্ড এক্সেস করা হয়।
- Unique Primary Index (UPI) এবং Non-Unique Primary Index (NUPI) হিসেবে দুটি ধরণের থাকতে পারে।
1. Unique Primary Index (UPI):
- যখন ইনডেক্সের মধ্যে প্রতিটি রেকর্ডের জন্য একটি ইউনিক মান থাকে, তখন এটি UPI হয়।
- এতে কোনো ডুপ্লিকেট ভ্যালু থাকতে পারে না।
2. Non-Unique Primary Index (NUPI):
- যখন ইনডেক্সের মধ্যে ডুপ্লিকেট মান থাকতে পারে, তখন এটি NUPI হয়।
- এতে একাধিক রেকর্ড একই মান নিয়ে থাকতে পারে।
উদাহরণ:
CREATE TABLE employees (
employee_id INTEGER,
first_name VARCHAR(50),
last_name VARCHAR(50),
department VARCHAR(50)
) PRIMARY INDEX (employee_id);
এটি employee_id কলামে একটি Primary Index তৈরি করবে, যা টেবিলের ডেটা ডিসট্রিবিউশন এবং এক্সেসের জন্য ব্যবহৃত হবে।
Secondary Index
Secondary Index হলো একটি অতিরিক্ত ইনডেক্স যা টেবিলের অন্য কলামের উপর তৈরি করা হয় এবং এটি Primary Index থেকে ভিন্নভাবে কাজ করে। Secondary Index ব্যবহার করা হয় যদি আপনি কোনো বিশেষ কলামের ভিত্তিতে দ্রুত ডেটা অনুসন্ধান করতে চান, যা Primary Index এর কলাম নয়। এটি ডেটা অ্যাক্সেসের জন্য অতিরিক্ত সহায়তা প্রদান করে।
বৈশিষ্ট্য:
- Secondary Index একটি বা একাধিক কলামে তৈরি করা যেতে পারে।
- এটি Primary Index কে প্রভাবিত করে না, এবং এটি শুধুমাত্র দ্রুত অনুসন্ধানের জন্য ব্যবহৃত হয়।
- Secondary Index-এর মাধ্যমে টেবিলের কলামগুলিতে দ্রুত অনুসন্ধান সম্ভব হয়, তবে এটি পারফরম্যান্সে কিছুটা অতিরিক্ত লোড সৃষ্টি করতে পারে কারণ অতিরিক্ত ইনডেক্স তৈরি এবং আপডেট করতে হয়।
উদাহরণ:
CREATE INDEX dept_index
ON employees (department);
এটি employees টেবিলের department কলামের জন্য একটি Secondary Index তৈরি করবে। এর ফলে department কলামের মান অনুসারে দ্রুত ডেটা অনুসন্ধান করা সম্ভব হবে।
সুবিধা:
- Secondary Index শুধুমাত্র দ্রুত অনুসন্ধান এবং ডেটা অ্যাক্সেসের জন্য ব্যবহৃত হয়।
- এটি
Primary Indexএর বাইরে অন্যান্য কলামগুলোতে দ্রুত অনুসন্ধান সক্ষম করে।
অসুবিধা:
- Secondary Index তৈরি করলে এটি প্রতিবার INSERT, UPDATE, বা DELETE অপারেশনে কিছুটা অতিরিক্ত সময় নিতে পারে, কারণ ইনডেক্সটি আপডেট করতে হয়।
- এটি অতিরিক্ত স্পেসও ব্যবহার করতে পারে।
Primary এবং Secondary Index এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Primary Index | Secondary Index |
|---|---|---|
| ব্যবহার | ডেটা ডিস্ট্রিবিউশন এবং দ্রুত অ্যাক্সেস | অতিরিক্ত দ্রুত অনুসন্ধান |
| ডুপ্লিকেট মান | UPI-তে ডুপ্লিকেট মান থাকতে পারে না | ডুপ্লিকেট মান থাকতে পারে |
| প্রতিটি টেবিলের জন্য | শুধুমাত্র একটি Primary Index হতে পারে | একাধিক Secondary Index হতে পারে |
| পারফরম্যান্স | মূল ডেটার জন্য দ্রুত এক্সেস প্রদান করে | অতিরিক্ত ইনডেক্স প্রক্রিয়ার জন্য কিছুটা পারফরম্যান্স কম হতে পারে |
| ডেটা বিতরণ | ডেটা বিতরণ এবং এক্সেসের জন্য ব্যবহৃত হয় | দ্রুত অনুসন্ধান এবং এক্সেসের জন্য ব্যবহৃত হয় |
সারাংশ
টেরাডেটায় Primary Index ডেটার দ্রুত বিতরণ এবং এক্সেসের জন্য ব্যবহৃত হয়, যেখানে Secondary Index অতিরিক্ত দ্রুত অনুসন্ধান সুবিধা প্রদান করে। Primary Index দিয়ে ডেটা বিতরণ করা হয় এবং এটি টেবিলের কার্যকর পারফরম্যান্স নিশ্চিত করে, যখন Secondary Index নির্দিষ্ট কলামগুলিতে অনুসন্ধান আরও দ্রুততর করে। তবে, Secondary Index ব্যবহারে অতিরিক্ত স্টোরেজ স্পেস এবং আপডেট সময় বাড়তে পারে।
Read more