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