Tbl_responses有
> id
>回应
> msgstr
>用户名
有5,000条记录. “zac1987”发布了800条回复.在“zac1987”发布的800条回复中,有30条差异.
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,sql
来源: https://codeday.me/bug/20190626/1295284.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/36955.html