MySQL5.7性能优化系列(二)——SQL语句优化(2)——子查询-派生表-视图--概述
2017-08-02 22:11
393 查看
章节内容:
使用Semi-join连接优化子查询、派生表、视图使用Materialization优化子查询
优化派生表、视图
使用Exist 策略优化子查询
概述
in或者any子查询
MySQL查询优化器具有不同的策略来评估子查询。对于IN(或= ANY)子查询,优化器具有以下选择:Semi-join 半连接策略
Materialization物化策略
EXISTS 策略
not in (<>或者all) 子查询
对于NOT IN(或<> ALL)子查询,优化器具有以下选择:Materialization物化策略
EXISTS 策略
派生表(from 子句中的子查询)
对于派生表(FROM子句中的子查询),优化器具有以下选项:将派生表合并到外部查询块中
将派生表实现为内部临时表
视图
对于视图,优化器与派生表具有相同的选择。- 将视图合并到外部查询块中
- 将视图实现为内部临时表
以下讨论提供了有关上述优化策略的更多信息。
注意:
使用子查询修改单个表的UPDATE和DELETE语句的限制,优化器不使用semi-join连接或Materialization子查询优化。作为解决方法,请尝试将其重写为使用连接而不是子查询的多表UPDATE和DELETE语句相关文章推荐
- MySQL5.7性能优化系列(二)——SQL语句优化(2)——使用 Semi-Join半连接变换优化子查询,派生表和视图
- MySQL5.7性能优化系列(二)——SQL语句优化(4)——使用合并、物化策略优化派生表、视图引用
- MySQL5.7性能优化系列(二)——SQL语句优化(3)——使用物化策略优化子查询
- Sql Server系列:SQL语句查询数据库中表、视图、存储过程等组成
- SQL语句查询存储过程 视图 所有表 触发器
- 优化SQL查询:如何写出高性能SQL语句
- 浅谈MySQL中优化sql语句查询常用的30种方法
- 浅谈MySQL中优化sql语句查询常用的30种方法
- 浅谈MySQL中优化sql语句查询常用的30种方法
- mysql5.7官网直译SQL语句优化--where条件查询优化
- 程序里的SQL、mybatis下的查询慢的优化方法(非SQL语句优化)
- 有效的mysql优化sql语句查询的方法
- 查询某张表被哪些存储过程或者视图用到的sql语句
- 性能优化系列---查询高cup的sql
- 优化SQL查询:如何写出高性能SQL语句
- SQL 语句 优化系列总结
- 优化SQL查询:如何写出高性能SQL语句
- 自己实现一个SQL解析引擎 功能:将用户输入的SQL语句序列转换为一个可执行的操作序列,并返回查询的结果集。 SQL的解析引擎包括查询编译与查询优化和查询的运行,主要包括3个步骤: 查询分析
- 浅谈MySQL中优化sql语句查询常用的30种方法
- 优化SQL查询:如何写出高性能SQL语句