टॉप N पंक्तियों को कुशलतापूर्वक चुनने के लिए इंडेक्स का उपयोग करें।
उदाहरण
टेबल बनाएं:
mysql> create table DemoTable (StudentName varchar(100), StudentScore int); Query OK, 0 rows affected (0.66 sec)
रिकॉर्ड डालें:
mysql> insert into DemoTable values('John', 34);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('Carol', 55);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Bob', 58);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('Sam', 38);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Mike', 48);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Adam', 41);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Chris', 47);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('Robert', 40);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('David', 89);
Query OK, 1 row affected (0.18 sec)
सभी रिकॉर्ड देखें:
mysql> select * from DemoTable;
आउटपुट
+-------------+--------------+ | StudentName | StudentScore | +-------------+--------------+ | John | 34 | | Carol | 55 | | Bob | 58 | | Sam | 38 | | Mike | 48 | | Adam | 41 | | Chris | 47 | | Robert | 40 | | David | 89 | +-------------+--------------+ 9 rows in set (0.00 sec)
इंडेक्स बनाकर टॉप N पंक्तियां कुशलतापूर्वक चुनें:
mysql> alter table DemoTable ADD INDEX name_score(StudentName, StudentScore); Query OK, 0 rows affected (0.61 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> select StudentName, StudentScore from DemoTable order by StudentScore LIMIT 5, 3;
आउटपुट
+-------------+--------------+ | StudentName | StudentScore | +-------------+--------------+ | Mike | 48 | | Carol | 55 | | Bob | 58 | +-------------+--------------+ 3 rows in set (0.00 sec)
व्याख्या: ORDER BY StudentScore आरोही क्रम में सॉर्ट करता है। LIMIT 5, 3 का अर्थ है 5 पंक्तियां छोड़ें, फिर 3 पंक्तियां लें (6th, 7th, 8th उच्चतम स्कोर)।