mysql处理40w数据脚本执行慢问题

需求背景:

2张表 SS_ZYXX 1w数据,WD_GZPZ 50w数据    SS_ZYXX.id  = WD_GZPZ.zyxx_id

  找到SS_ZYXX表有数据,关联表WD_GZPZ没有数据的SS_ZYXX表的id

处理方案

方案一: 联合查询:

下面sql,在mysql执行时间30分钟,太慢了,不适合处理线上问题

select id from SS_ZYXX
where id not in(Select zyxx_id from WD_GZPZ where sfsc ='N' group by zyxx_id)

方案二:使用临时表

1、2个临时表,找到需要处理数据的id

create table SS_ZYXX_ID_TEMP Select zyxx_id from WD_GZPZ where sfsc ='N' group by zyxx_id;


create table SS_ZYXX_ID_TEMP11
select id from SS_ZYXX
where id not in(Select zyxx_id from SS_ZYXX_ID_TEMP);

2个sql执行合起来1分钟内,找到了在SS_ZYXX表有数据,WD_GZPZ表没有数据的垃圾数据。