您的位置:首页 > 汽车 > 时评 > MySQL UPDATE和DELETE语句的 IN/EXISTS 子查询限制

MySQL UPDATE和DELETE语句的 IN/EXISTS 子查询限制

2024/7/3 21:20:08 来源:https://blog.csdn.net/u010719917/article/details/139855797  浏览:    关键词:MySQL UPDATE和DELETE语句的 IN/EXISTS 子查询限制

The MySQL query optimizer has different strategies available to evaluate subqueries:
1、 For a subquery used with an IN, = ANY, or EXISTS predicate, the optimizer has these choices:
• Semijoin
• Materialization
• EXISTS strategy

2、 For a subquery used with a NOT IN, <> ALL or NOT EXISTS predicate, the optimizer has these
choices:
1669Optimizing Subqueries, Derived Tables, View References, and Common Table Expressions
• Materialization
• EXISTS strategy

3、For a derived table, the optimizer has these choices (which also apply to view references and common
table expressions):
• Merge the derived table into the outer query block
• Materialize the derived table to an internal temporary table
The following discussion provides more information about the preceding optimization strategies.

Note
A limitation on UPDATE and DELETE statements that use a subquery to modifya single table is that the optimizer does not use semijoin or materialization subquery optimizations. As a workaround, try rewriting them as multiple-table UPDATE and DELETE statements that use a join rather than a subquery.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com