如何在MySQL中加快SELECT DISTINCT

为了加快SELECT DISTINCT的速度,您可以在一个或一组列上创建索引。让我们首先创建一个表-

mysql> create table DemoTable
(
   Name varchar(40)
);

以下是创建索引的查询-

mysql> create index Name_Index on DemoTable(Name);
Records: 0 Duplicates: 0 Warnings: 0

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable values('Chris');
mysql> insert into DemoTable values('Mike');
mysql> insert into DemoTable values('Chris');
mysql> insert into DemoTable values('Chris');
mysql> insert into DemoTable values('Sam');

使用select语句显示表中的所有记录-

mysql> select *from DemoTable;

这将产生以下输出-

+-------+
| Name  |
+-------+
| Chris |
| Chris |
| Chris |
| Mike  |
| Sam   |
+-------+
5 rows in set (0.00 sec)

以下是仅选择不同记录的查询-

mysql> select distinct Name from DemoTable;

这将产生以下输出-

+-------+
| Name  |
+-------+
| Chris |
| Mike  |
| Sam   |
+-------+
3 rows in set (0.02 sec)