在MYSQL中,视图中增加了一个distinct导致执行计划不先走where 条件

风吹腚腚凉 2018-04-04 04:37:10

视图A中包含一个distinct关键字后,会先对表A进行ALL的查询,
我期望是先根据表A进行WHERE 筛选,然后在对结果集进行 distinct
如果把distinct拿出来肯定可以,但是维护难啊,有没有不拿出来也能改变执行计划的办法?
...全文
813 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
G.Jagger 2018-04-10
  • 打赏
  • 举报
回复
那就外联接视图,再塞个条件进去试试
风吹腚腚凉 2018-04-08
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
换用group by试试
试了不行,执行计划依然先查询的是全表
风吹腚腚凉 2018-04-08
  • 打赏
  • 举报
回复
引用 3 楼 rucypli 的回复:
可以试下子查询 select distinct from (select * from xx wheretmp
视图啊兄弟,你where条件能写的进去么?
rucypli 2018-04-07
  • 打赏
  • 举报
回复
可以试下子查询 select distinct from (select * from xx wheretmp
骏马金龙 2018-04-04
  • 打赏
  • 举报
回复
distinct不好办的事,可以考虑换成group by
oyljerry 2018-04-04
  • 打赏
  • 举报
回复
换用group by试试

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧