【发布时间】:2011-09-30 21:38:42
【问题描述】:
假设一个包含 5000 万个姓氏的表格(例如),如何有效地识别前 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`)
);
我可以在 20 分钟内获得前 1000 名。但是前 10000 名需要一整天(字面意思)。有什么建议吗?
【问题讨论】:
-
我目前卡在“复制到磁盘上的 tmp 表”。
标签: mysql optimization performance query-optimization