gpt4 book ai didi

mysql - 如何优化mysql Distinct?

转载 作者:可可西里 更新时间:2023-11-01 07:33:34 25 4
gpt4 key购买 nike

Tbl_responses

  • 编号
  • 回应
  • 消息标识符
  • 用户名

有 5,000 条记录。 “zac1987”发布了 800 条回复。 “zac1987”发布的800条回复中有30条msgid不同。

SELECT DISTINCT msgid 
FROM Tbl_responses
WHERE username = 'zac1987';

目前 Explain SQL 显示有 800 行受到影响。如何优化查询以便只影响 30 行?我认为必须有一个解决方案来避免循环/过滤 800 条记录...就像用我的博客上显示的 JOIN 子句问题替换 WHERE 子句一样... ye5.blogspot.com/2011/07/optimize-faster-mysql-query-speed.html我正在寻找一些专家来提出解决方案,以避免循环 800 条记录。

我的另一个问题 - 为什么这个页面 http://forge.mysql.com/wiki/Top10SQLPerformanceTips说“当你有或可以使用 GROUP BY 时不要使用 DISTINCT”,因为它会减慢查询速度?但是我测试过,结果并没有变慢,为什么?

最佳答案

如您所说,尝试重写查询以使用 GROUP BY 子句:

SELECT msgid 
FROM Tbl_responses
WHERE username = 'zac1987' GROUP BY msgid;

并查看性能差异

关于mysql - 如何优化mysql Distinct?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6577785/

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