mysql distinct where_如何优化mysql Distinct?

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值