Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में KEY() का उपयोग करके तीन कॉलम का इंडेक्स कैसे बनाएं?

MySQL में बहु-कॉलम (संयुक्त) इंडेक्स बनाना

MySQL में, आप KEY() क्लॉज (या INDEX) का उपयोग करके टेबल निर्माण के दौरान एक संयुक्त इंडेक्स (बहु-कॉलम इंडेक्स) परिभाषित कर सकते हैं। यह उन क्वेरी के लिए प्रदर्शन में सुधार करता है जो उन कॉलम पर फ़िल्टर या जॉइन करती हैं।

उदाहरण: 3-कॉलम संयुक्त इंडेक्स

mysql> CREATE TABLE DemoTable1437 (
    -> StudentId INT,
    -> StudentName VARCHAR(20),
    -> StudentMarks INT,
    -> StudentAge INT,
    -> KEY(StudentId, StudentMarks, StudentAge)
    -> );
Query OK, 0 rows affected (0.97 sec)

mysql> DESC DemoTable1437;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| StudentId    | int(11)     | YES  | MUL | NULL    |       |
| StudentName  | varchar(20) | YES  |     | NULL    |       |
| StudentMarks | int(11)     | YES  |     | NULL    |       |
| StudentAge   | int(11)     | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

Key कॉलम में MUL दर्शाता है कि StudentId संयुक्त इंडेक्स का हिस्सा है (बाएं-सबसे पहले कॉलम)।

डेटा डालें और क्वेरी करें

mysql> INSERT INTO DemoTable1437 VALUES (101, 'Chris', 78, 21), (102, 'David', 89, 22);
Query OK, 2 rows affected (0.44 sec)

mysql> SELECT * FROM DemoTable1437;
+-----------+-------------+--------------+------------+
| StudentId | StudentName | StudentMarks | StudentAge |
+-----------+-------------+--------------+------------+
|       101 | Chris       |           78 |         21 |
|       102 | David       |           89 |         22 |
+-----------+-------------+--------------+------------+
2 rows in set (0.00 sec)

संयुक्त इंडेक्स सर्वोत्तम अभ्यास

  • कॉलम क्रम मायने रखता है: सबसे अधिक चयनात्मक/अक्सर फ़िल्टर किए जाने वाले कॉलम को पहले रखें
  • बाएं-उपसर्ग नियम: इंडेक्स (A,B,C) पर क्वेरी A, (A,B), या (A,B,C) पर फ़िल्टर कर सकती है - लेकिन B अकेले या (B,C) पर नहीं
  • कवरिंग इंडेक्स: यदि क्वेरी केवल इंडेक्स किए गए कॉलम का चयन करती है, तो यह टेबल एक्सेस से बचती है

वैकल्पिक सिंटैक्स

-- टेबल निर्माण के बाद INDDEX का उपयोग
CREATE INDEX idx_student_composite ON DemoTable1437(StudentId, StudentMarks, StudentAge);

-- नामित इंडेक्स
CREATE INDEX idx_name ON DemoTable1437(StudentId, StudentMarks, StudentAge);

इंडेक्स उपयोग सत्यापित करें

EXPLAIN SELECT * FROM DemoTable1437
WHERE StudentId = 101 AND StudentMarks > 70;
  1. - MySQL में एकाधिक कॉलम वाली टेबल में शर्तें कैसे बनाएं?

    MySQL में IF() फ़ंक्शन का उपयोग करके एकाधिक कॉलम पर शर्तीय तर्क लागू करना MySQL में IF() फ़ंक्शन का उपयोग करके क्वेरी स्तर पर शर्तीय तर्क लागू कर सकते हैं। यह तीन तर्क लेता है: शर्त, सत्य मान, असत्य मान। वाक्यविन्यास IF(condition, true_value, false_value) उदाहरण के साथ पूर्ण कार्यान्वयन टेबल बनान

  1. - MySQL व्यू कैसे बनाएं?

    MySQL व्यू बनाने के लिए, नीचे दिए गए सिंटैक्स में CREATE VIEW का उपयोग करें: create view yourViewName as select * from yourTableName; आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1802 ( StudentId int, StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमा

  1. - MySQL कम्पोजिट इंडेक्स: एकाधिक कॉलम पर इंडेक्सिंग

    कम्पोजिट इंडेक्स (Composite Index) एक ऐसा इंडेक्स है जो एक साथ कई कॉलम पर बनाया जाता है। इसे मल्टी-कॉलम इंडेक्स (Multiple-Column Index) के नाम से भी जाना जाता है। मुख्य विशेषताएं MySQL आपको अधिकतम 16 कॉलम तक का कम्पोजिट इंडेक्स बनाने की अनुमति देता है। क्वेरी ऑप्टिमाइज़र उन क्वेरीज़ के लिए कम्पोजि