Если предположить таблицу из 50 миллионов фамилий (например), как эффективно определить первые 10000?
Есть ли более эффективный запрос, чем этот?
SELECT count(last_name) as cnt, last_name
FROM last_name_table
GROUP BY last_name
ORDER BY cnt DESC
LIMIT 10000;
Предполагая, что:
CREATE TABLE last_name_table (
`last_name` VARCHAR(255),
KEY `last_name` (`last_name`)
);
Я могу получить топ-1000 за 20 минут. Но топ 10000 занимает весь день (буквально). Есть предложения?