인덱스를 사용하여 상위 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)
select 문을 사용하여 테이블의 모든 레코드 표시 -
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개 행을 효율적으로 선택하는 쿼리입니다. ORDER BY를 사용하고 5행을 건너뛰었습니다. 건너뛰고 나면 LIMIT 3 −
를 사용했기 때문에 3개의 레코드가 표시됩니다.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)