MySQL में तालिका निर्माण के बाद CREATE INDEX स्टेटमेंट का उपयोग करके इंडेक्स बनाए जा सकते हैं, या तालिका निर्माण के समय परिभाषित किए जा सकते हैं।
विधि 1: तालिका निर्माण के बाद
CREATE TABLE table_name (
col1 datatype,
col2 datatype
);
CREATE INDEX index_name1 ON table_name (col1);
CREATE INDEX index_name2 ON table_name (col2);
विधि 2: तालिका निर्माण के समय (अनुशंसित)
CREATE TABLE table_name (
col1 datatype,
col2 datatype,
INDEX index_name1 (col1),
INDEX index_name2 (col2)
);
उदाहरण
mysql> CREATE TABLE DemoTable (Id INT, Name VARCHAR(20));
mysql> CREATE INDEX id_index ON DemoTable(Id);
mysql> CREATE INDEX name_index ON DemoTable(Name);
संरचना जांचें
mysql> 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
इंडेक्स प्रकार
| प्रकार | सिंटैक्स | उपयोग |
|---|---|---|
| सामान्य | INDEX name (col) | सामान्य खोज |
| UNIQUE | UNIQUE INDEX name (col) | अद्वितीय मान लागू करें |
| PRIMARY KEY | PRIMARY KEY (col) | मुख्य कुंजी, क्लस्टर्ड इंडेक्स |
| FULLTEXT | FULLTEXT INDEX name (col) | पूर्ण-पाठ खोज |
| SPATIAL | SPATIAL INDEX name (col) | भौगोलिक डेटा |
| संयुक्त | INDEX name (col1, col2) | बहु-कॉलम क्वेरी |
महत्वपूर्ण विचार
- इंडेक्स INSERT/UPDATE/DELETE को धीमा करते हैं
- चयनात्मकता उच्च होने पर सबसे प्रभावी
EXPLAINके साथ क्वेरी योजना जांचें- अप्रयुक्त इंडेक्स हटाएं