MySQLNotexists一个你不需要会的语法

编程

not exists - 就是字面意思: 不存在.  A表里某个字段的值不在B表里; 返回符合条件的A表记录.

如:

select a.id, a.code

from table_a a

where not exists (

select b.code from table_b b where a.code = b.code

);

-- 注意 where a.code = b.code 将 a, b 表连起来

A表数据量15w+, B表在5w+的时候,这个sql就需要执行5分钟以上,甚至更久. 8,9分钟都有(依赖于系统当时负载). mysql的版本是5.6 or 5.7. 某云RDS,系统配置不清楚,但不会差.

没有单独做过实验,懒.

不知道后续的mysql是否对此做过优化. 懒.

 

建议优化方式:  a, b表取各自的结果集join, 然后where条件过滤

 

有更好的方式,请留言.

以上是 MySQLNotexists一个你不需要会的语法 的全部内容, 来源链接: utcz.com/z/516899.html

回到顶部