gpt4 book ai didi

mysql count group by order by optimization

转载 作者:可可西里 更新时间:2023-11-01 07:35:45 26 4
gpt4 key购买 nike

我有一个表来存储 poststag name

table: tagname
tags | pid
festival | 10034
New York Fashion Week | 10034
festival | 10035
car | 10036
...

该表现在已经有 590,000 条记录。现在我想从此表中获取前 10 个最受欢迎的标签。

SELECT tags, COUNT(*) as Num FROM tagname
GROUP BY tags
ORDER BY Num DESC

这将花费 23.88 秒。返回358种标签

tags       |  Num
festival | 7201
art | 6988
gift | 6755
...

即使在 my.cnf 中,如何优化此查询?我试图为标签添加索引,但似乎没有效果。

编辑:EXPLAIN SELECT tags, COUNT(tags) as Num FROMtagnameGROUP BY 标签按 Num DESC 排序

id  select_type table   type    possible_keys   key key_len ref rows    Extra
1 SIMPLE tagname ALL NULL NULL NULL NULL 597649 Using temporary; Using filesort

最佳答案

将索引添加到您的 tags 列:

ALTER TABLE `tagname` 
ADD INDEX `tags_index` (`tags` ASC) ;

编辑:

尝试创建第二个索引

CREATE INDEX tags_pid_index ON tagname (tags, pid);

然后将您的查询修改为:

SELECT tags, COUNT(pid) as Num 
FROM tagname
GROUP BY tags
ORDER BY Num DESC

关于mysql count group by order by optimization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10329024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com