MySQL-এ টেবিল তৈরির পর আলাদা CREATE INDEX স্টেটমেন্ট দিয়ে ইনডেক্স তৈরি করা হয়। এটি কুয়েরি পারফরম্যান্স বেড়াতে সাহায্য করে।
সিনট্যাক্স
CREATE TABLE yourTableName (
col1 datatype,
col2 datatype,
...
);
CREATE INDEX index_name1 ON yourTableName(col1);
CREATE INDEX index_name2 ON yourTableName(col2);
উদাহরণ
CREATE TABLE DemoTable (
Id INT,
Name VARCHAR(20)
);
CREATE INDEX id_index ON DemoTable(Id);
CREATE INDEX Name_index ON DemoTable(Name);
টেবিল স্ট্রাকচার যাচাই
SHOW CREATE TABLE DemoTable;
আউটপুট
CREATE TABLE `DemoTable` (
`Id` int(11) DEFAULT NULL,
`Name` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
KEY `id_index` (`Id`),
KEY `Name_index` (`Name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
ইনডেক্স টাইপ ও টিপস
| টাইপ | সিনট্যাক্স | ব্যবহার |
|---|---|---|
| সাধারণ (BTREE) | CREATE INDEX idx ON tbl(col) | =, >, <, LIKE 'prefix%' |
| ইউনিক | CREATE UNIQUE INDEX idx ON tbl(col) | ডুপ্লিকেট বাধা + সার্চ |
| ফুলটেক্সট | CREATE FULLTEXT INDEX idx ON tbl(col) | MATCH() AGAINST() |
| কম্পোজিট | CREATE INDEX idx ON tbl(col1, col2) | মাল্টি-কলাম ফিল্টার |
স্রেফ টেবিল তৈরির সময়ই ইনডেক্স
CREATE TABLE DemoTable (
Id INT,
Name VARCHAR(20),
INDEX id_index (Id),
INDEX Name_index (Name)
);
দুটি পদ্ধতিই সমতুল্য। আলাদা CREATE INDEX প্রোডাকশন টেবিলে লক কম করতে সাহায্য করতে পারে (অনলাইন DDL)।