MySQL 深潜 - Semijoin 丛林小道全览

MySQL semijoin 也被称为半连接,主要是解决外查询一个或多个表的记录在包含一个或多个表的子查询结果中的存在性问题,比如 IN/EXIST 子查询。如果按照 IN/EXIST 谓词的原语义去执行,对外查询的每行记录都去计算 IN/EXIST 谓词的结果,子查询的内容就需要单独执行,在关联子查询的情况下,子查询需要多次重复执行,整体的执行效率很低。实际上,部分存在性问题(SPJ 子查询)类似于外查询的多个表与子查询的多个表(以下简述为外表和内表)的连接(JOIN)问题