Sử dụng chỉ mục để chọn n hàng trên cùng một cách hiệu quả. Đầu tiên chúng ta hãy tạo một bảng -
mysql> create table DemoTable (StudentName varchar(100), StudentScore int ); Query OK, 0 rows affected (0.66 sec)
Ví dụ
Chèn một số bản ghi vào bảng bằng lệnh chèn -
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)
Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -
mysql> select *from DemoTable;
Đầu ra
+-------------+--------------+ | 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)
Ví dụ
Sau đây là truy vấn để chọn n hàng trên cùng một cách hiệu quả. Chúng tôi đã sử dụng ORDER BY và bỏ qua 5 hàng. Sau khi bỏ qua, 3 bản ghi được hiển thị, vì chúng tôi đã sử dụng LIMIT 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;
Đầu ra
+-------------+--------------+ | StudentName | StudentScore | +-------------+--------------+ | Mike | 48 | | Carol | 55 | | Bob | 58 | +-------------+--------------+ 3 rows in set (0.00 sec)