SQL-এ Index হলো একটি ডেটাবেস অবজেক্ট যা একটি টেবিলের কলামগুলোর উপর দ্রুত অনুসন্ধান এবং ডেটা অ্যাক্সেস নিশ্চিত করতে ব্যবহৃত হয়। এটি টেবিলের তথ্যের মধ্যে দ্রুত প্রবেশাধিকার প্রদান করে, বিশেষত যখন ডেটাবেসে বড় পরিমাণ ডেটা থাকে। Index ডেটাবেসের পারফরম্যান্স বৃদ্ধি করতে সহায়তা করে, তবে এটি কিছু সময় ফাঁকা জায়গা (storage) এবং ইনডেক্স আপডেটের জন্য অতিরিক্ত সময় নেয়।
Index তৈরি করার সিনট্যাক্স:
Index তৈরি করার জন্য CREATE INDEX স্টেটমেন্ট ব্যবহৃত হয়।
CREATE INDEX index_name
ON table_name (column_name);
এখানে:
index_name: ইনডেক্সের নামtable_name: টেবিলের নাম যেখানে ইনডেক্স তৈরি হবেcolumn_name: ইনডেক্স তৈরি করার জন্য কলাম নাম
উদাহরণ:
ধরা যাক, আমাদের একটি employees টেবিল রয়েছে এবং আমরা last_name কলামের ওপর একটি ইনডেক্স তৈরি করতে চাই:
CREATE INDEX idx_lastname
ON employees (last_name);
এই ইনডেক্সটি last_name কলামের ওপর তৈরি হবে এবং ডেটাবেসের অনুসন্ধানে এটি দ্রুত কার্যকরী হবে।
Index এর ধরন:
Unique Index: এটি একটি ইনডেক্স যার মধ্যে প্রতিটি মান অনন্য। এটি ডেটাবেসে ডুপ্লিকেট মান থাকা থেকে বাধা দেয়। সাধারণত PRIMARY KEY বা UNIQUE KEY কনস্ট্রেইন্টের ক্ষেত্রে ব্যবহৃত হয়।
CREATE UNIQUE INDEX idx_unique_lastname ON employees (last_name);Composite Index: একাধিক কলামের ওপর ইনডেক্স তৈরি করার জন্য Composite Index ব্যবহার করা হয়। এটি বিশেষত তখন কার্যকরী, যখন একাধিক কলাম একসাথে বারবার ব্যবহার করা হয়।
CREATE INDEX idx_fullname ON employees (first_name, last_name);
Index ম্যানেজমেন্ট:
Index মুছে ফেলা: একটি ইনডেক্স মুছে ফেলতে
DROP INDEXকমান্ড ব্যবহার করা হয়।DROP INDEX index_name;উদাহরণ:
DROP INDEX idx_lastname;Index পরিদর্শন করা: বেশ কিছু DBMS যেমন MySQL, PostgreSQL, এবং SQL Server ইত্যাদিতে ইনডেক্স সম্পর্কিত তথ্য দেখতে কাস্টম কুয়েরি ব্যবহার করা যায়।
উদাহরণ (MySQL):
SHOW INDEX FROM employees;Index পুনর্গঠন (Rebuilding): ইনডেক্স সময়ের সাথে টেবিলের ডেটার পরিমাণ বৃদ্ধির কারণে অকার্যকর হয়ে যেতে পারে। এমন পরিস্থিতিতে ইনডেক্স পুনর্গঠন করা হয়।
উদাহরণ (SQL Server):
ALTER INDEX ALL ON employees REBUILD;
Index এর সুবিধা এবং সীমাবদ্ধতা:
- সুবিধা:
- ডেটার দ্রুত অনুসন্ধান এবং অ্যাক্সেস।
- SELECT প্রশ্নের কার্যকারিতা বাড়ানো।
- WHERE, JOIN, ORDER BY ইত্যাদি কুয়েরি অপারেশনগুলির গতি বৃদ্ধি।
- সীমাবদ্ধতা:
- ইনডেক্স সৃষ্টির জন্য অতিরিক্ত স্টোরেজ প্রয়োজন।
- ইনডেক্স তৈরি এবং আপডেটের জন্য কিছু সময় ব্যয় হয়, বিশেষ করে ডেটাবেসে ইনসার্ট, আপডেট বা ডিলিট করার সময়।
Index ব্যবহারের ক্ষেত্রে সর্বদা ভারসাম্য রক্ষা করা গুরুত্বপূর্ণ, যাতে ডেটাবেসের পারফরম্যান্স যথাযথ থাকে।
Read more