Sql Query Optimization для подсчета и отображения (отличное значение в столбце), сгруппированные по двум другим столбцам - PullRequest
0 голосов
/ 26 ноября 2018

Из столбцов A, B и C я подсчитываю различные C, где таблица сгруппирована по A, B. Ниже приведен пример таблицы:

img1

и вывод должен выглядеть примерно так:

img2

Я запускаю phpMyAdmin на своем локальном компьютере, используя тестовый сервер wamp.Моя база данных имеет 500000 строк.Я использовал следующий запрос, и его выполнение заняло более 180 секунд.

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

Есть ли какой-нибудь оптимальный запрос, который я могу использовать для того же результата, который даст мне меньше времени выполнения?Или это потому, что в моей таблице много данных?

1 Ответ

0 голосов
/ 26 ноября 2018

Для производительности вам нужно добавить Составной индекс из (A, B, C) на ваш стол.

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