SQL查询优化,用于计数和显示(列中的不同值),按其他两列分组

时间:2018-11-26 04:11:58

标签: mysql sql query-optimization

在A,B和C列中,我计算的是将表按A,B分组的不同的C。 下面是示例表:

img1

,输出应类似于:

img2

我正在使用wamp服务器进行测试的本地计算机中运行phpMyAdmin。我的数据库有500000行。我使用以下查询,并且花了超过180秒的时间来运行查询。

select A, B, count(distinct C)
from table
group by A, B
order by count(DISTINCT C) desc

是否存在可以用于相同结果的最佳查询,这将减少我的运行时间?还是因为表中有大量数据?

1 个答案:

答案 0 :(得分:1)

为了提高性能,您需要在表上添加(A, B, C)中的Composite Index

ALTER TABLE your_table_name 
ADD INDEX(A,B,C);