帮忙优化一个mysql的语句,很多重复子查询

帮忙优化一个mysql的语句,很多重复子查询,第1张

子查询优化策略

对于不同类型的子查询,优化器会选择不同的策略。

1. 对于 IN、=ANY 子查询,优化器有如下策略选择:

semijoin

Materialization

exists

2. 对于 NOT IN、<>ALL 子查询,优化器有如下策略选择:

Materialization

exists

3. 对于 derived 派生表,优化器有如下策略选择:

derived_merge,将派生表合并到外部查询中(5.7 引入 );

将派生表物化为内部临时表,再用于外部查询。

注意:update 和 delete 语句中子查询不能使用 semijoin、materialization 优化策略

假如你不限制条件的话,mysql会查询出符合where条件的所有数据,如:select * from tableA where id>100//此条sql语句将会查询出tableA表中id>100的所有数据当然你可以限制条数,如:select * from tableA where id>100 limit 0,1000//此条sql语句将会查询出tableA表中id>100的0到1000条数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7554113.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存