MySQL Count Distinct values 过程非常慢。如何加快速度?
mysqlmysqli database更新于 2024/1/9 3:59:00
要加快速度,可以使用 INDEX。让我们首先创建一个表 −
mysql> create table DemoTable1905 ( FirstName varchar(20), LastName varchar(20) , INDEX F_L_Name(FirstName,LastName) ); Query OK, 0 rows affected (0.00 sec)
使用 insert 命令在表中插入一些记录 −
mysql> insert into DemoTable1905 values('John','Smith'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1905 values('John','Doe'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1905 values('Adam','Smith'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1905 values('John','Doe'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1905 values('Chris','Brown'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1905 values('Adam','Smith'); Query OK, 1 row affected (0.00 sec)
使用 select 语句显示表中的所有记录 −
mysql> select * from DemoTable1905;
这将产生以下输出 −
+-----------+----------+ | FirstName | LastName | +-----------+----------+ | Adam | Smith | | Adam | Smith | | Chris | Brown | | John | Doe | | John | Doe | | John | Smith | +-----------+----------+ 6 rows in set (0.00 sec)
这是用于计算不同值的查询 −
mysql> select count(distinct FirstName) from DemoTable1905;
这将产生以下输出 −
+---------------------------+ | count(distinct FirstName) | +---------------------------+ | 3 | +---------------------------+ 1 row in set (0.00 sec)