কম্পোজিট ইনডেক্স (Composite Index) কী?
- একাধিক কলামে ব্যবহার করা একটি ইনডেক্স।
- এটিকে মাল্টিপল-কলাম ইনডেক্স ও বলা হয়।
- MySQL ব্যবহারকারীকে কম্পোজিট ইনডেক্স তৈরি করতে দেয় যাতে সর্বোচ্চ ১৬টি কলাম থাকতে পারে।
- কোয়েরি অপ্টিমাইজার কম্পোজিট ইনডেক্স ব্যবহার করে এমন কোয়েরি-র জন্য যা ইনডেক্সের সব কলাম টেস্ট করে।
- এটি যেসব কোয়েরির জন্যও ব্যবহার করা যায় যা প্রথম কলাম, প্রথম দুটি কলাম, ইত্যাদি টেস্ট করে।
- যদি কলামগুলো ইনডেক্স ডেফিনিশনে সঠিক ক্রমে থাকে, তবে একক কম্পোজিট ইনডেক্স একই টেবিলের নির্দিষ্ট ধরনের কোয়েরি স্পিড আপ করতে পারে।
টেবিল তৈরির সময় কম্পোজিট ইনডেক্স তৈরি
CREATE TABLE table_name (
c1 data_type PRIMARY KEY,
c2 data_type,
c3 data_type,
c4 data_type,
INDEX index_name (c2, c3, c4)
);
উপরের স্টেটমেন্টে কম্পোজিট ইনডেক্স তিনটি কলাম (c2, c3, c4) দিয়ে গঠিত।
বিদ্যমান টেবিলে কম্পোজিট ইনডেক্স যোগ করা
CREATE INDEX index_name ON table_name(c2, c3, c4);
কম্পোজিট ইনডেক্স দিয়ে স্লো কোয়েরি ফাস্ট করা
- কোয়েরি এক্সিকিউশন স্পিড এর ডিউরেশনে নির্ভর করে।
- ইন্ডেক্স হিন্ট ব্যবহার করলে কোয়েরি স্পিড বেড়ে।
- MySQL অপ্টিমাইজার সঠিক ইনডেক্স বেছে নেওয়াতে সাহায্য করে।
- এটি শুধু স্ট্যাটিক কোয়েরির জন্য করা উচিত।
- যদি
WHEREক্লজ পরিবর্তনশীল কোয়েরি যোগ করা হয়, তবে পারফরম্যান্স খারাপ হবে, কারণ অপ্টিমাইজার তার কাজ করতে পারবে না। FORCE INDEXস্টেটমেন্টUSE INDEX (index_list)-এর মতো কাজ করে, اضافه করে টেবিল স্ক্যানকে এক্সপেনসিভ টাস্ক হিসেবে বিবেচনা করে।- টেবিল স্ক্যান তখনই প্রয়োজন হয় যখন নাম্বড ইনডেক্স দিয়ে টেবিলের সারি খুঁজে বের করা কোনো উপায় নেই।