Ponieważ nadal musisz odczytać wszystkie dane z indeksu + pliku danych. Ponieważ nie używasz żadnego where
warunek - zawsze będziesz mieć plan zapytań, który będzie miał dostęp do wszystkich danych wiersz po wierszu i nie możesz nic z tym zrobić.
Jeśli wydajność jest ważna dla tego zapytania i jest ono wykonywane często - sugeruję buforowanie wyników w jakiejś tymczasowej tabeli i aktualizowanie jej co godzinę (codziennie itp.).
Dlaczego staje się wolniejsze:ponieważ w indeksie dane są już posortowane i kiedy mysql oblicza koszt wykonania zapytania, uważa, że lepiej będzie użyć już posortowanych danych, a następnie je pogrupować, a następnie przeliczyć agregaty. Ale tak nie jest w tym przypadku.