这个sql 这样优化可行吗?select distinct e.dd from (select distinct te.eventId from TE te ) te, et e where te.eventId=e.id and e.isLatest='Y' union select distinct e.dd from (select DISTINCT tm.eventId from TM tm ) tm, et e where tm.eventId=e.id and e.isLatest='Y';我的想法是修改为以下来优化
select distinct e.dd from (select distinct te.eventId from TE te ) te, et e where e.isLatest='Y' and te.eventId=e.id union select distinct e.dd from (select DISTINCT tm.eventId from TM tm ) tm, et e where e.isLatest='Y'and tm.eventId=e.id 这样做的根据:
e.isLatest='Y'数据很多 ,这样避免每个记录都做比较, 提到前面sql可以只做到链接一部分数据 ,否则 te.eventId=e.id 都是接近走全表, 这里分析是对的吗??? (经过验证有时偶快点, 快得不是很多)
select distinct e.dd from (select distinct te.eventId from TE te ) te, et e where e.isLatest='Y' and te.eventId=e.id union select distinct e.dd from (select DISTINCT tm.eventId from TM tm ) tm, et e where e.isLatest='Y'and tm.eventId=e.id 这样做的根据:
e.isLatest='Y'数据很多 ,这样避免每个记录都做比较, 提到前面sql可以只做到链接一部分数据 ,否则 te.eventId=e.id 都是接近走全表, 这里分析是对的吗??? (经过验证有时偶快点, 快得不是很多)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货