度量快速开发平台-专业、快速的软件定制快开平台
标题:
关于not in 效率问题以及替换方式介绍
[打印本页]
作者:
王爱东
时间:
2020-4-8 11:54
标题:
关于not in 效率问题以及替换方式介绍
最近在清理一些数据的时候,发现一个SQL存在效率问题。
sa_mail_draft是主邮件表,sa_mail是邮件接收人明细信息,之间用sa_mail.mail_id 与 sa_mail_draft.id关联。
sa_mail_draft.id 是一对多 sa_mail.mail_id。
delete from SA_MAIL where mail_id not in (select id from sa_mail_draft);
如果数据量大,比如上万,几十万条数据,上面这条语句执行很慢,我们知道,一般不推荐使用not in语法。
因此尝试用左链接试试:
delete from sa_mail where mail_id in (select tablename.mail_id from (select sa_mail.mail_id,sa_mail_draft.id from SA_MAIL left join sa_mail_draft on SA_MAIL.mail_ID=sa_mail_draft.ID ) tablename where tablename.id is null )
虽然语句看起复杂很多,但是效率确搞很多倍。
作者:
万望
时间:
2020-4-10 19:15
多谢楼主的实际操作,感谢党,感谢人民,感谢毛主席
作者:
万望
时间:
2020-4-10 19:16
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/)
Powered by Discuz! X3.2