কম্পোজিট ইন্ডেক্স ব্যবহার করা যেতে পারে যখন সাবকোয়েরি ব্যবহার করা হয়। কম্পোজিট ইন্ডেক্সের সুবিধাগুলো নিচে দেওয়া হলো:
- জয়াইনিং (Joining)
- ফিল্টারিং (Filtering)
- সিলেক্টিং (Selecting)
ইন্ডেক্স সিনট্যাক্স
index(column_name1, column_name2, column_name3, column_name4, ... N)
টেবিল তৈরি করুন এবং তার মধ্যে ইন্ডেক্স সেট করুন:
mysql> create table MultipleIndexDemo -> ( -> id int, -> FirstName varchar(100), -> LastName varchar(100), -> Address varchar(200), -> index(id, LastName, Address) -> ); Query OK, 0 rows affected (0.57 sec)
ইন্ডেক্স তৈরি হয়েছে কিনা চেক করুন:
mysql> show index from MultipleIndexDemo;
আউটপুট:
+-------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | +-------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | multipleindexdemo | 1 | id | 1 | id | A | 0 | NULL | NULL | YES | BTREE | | | YES | | multipleindexdemo | 1 | id | 2 | LastName | A | 0 | NULL | NULL | YES | BTREE | | | YES | | multipleindexdemo | 1 | id | 3 | Address | A | 0 | NULL | NULL | YES | BTREE | | | YES | +-------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ 3 rows in set (0.18 sec)
গুরুত্বপূর্ণ নোট: কম্পোজিট ইন্ডেক্সে কলামের ক্রম অত্যন্ত গুরুত্বপূর্ণ (Leftmost Prefix Rule)। INDEX(a,b,c) কোয়েরি WHERE a=1 AND b=2, WHERE a=1 এর জন্য কাজ করবে, কিন্তু WHERE b=2 বা WHERE c=3 এর জন্য কাজ করবে না।