MySQL 8.0 官方文档 第八章 优化(二十三)—— 优化子查询、派生表、视图引用和公共表表达式
2021/5/17 19:26:10
本文主要是介绍MySQL 8.0 官方文档 第八章 优化(二十三)—— 优化子查询、派生表、视图引用和公共表表达式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
-
第八章 优化(二十三)—— 优化子查询、派生表、视图引用和公共表表达式 - 8.2 优化SQL语句
- 8.2.2 优化子查询、派生表、视图引用和公共表表达式
第八章 优化(二十三)—— 优化子查询、派生表、视图引用和公共表表达式
8.2 优化SQL语句
8.2.2 优化子查询、派生表、视图引用和公共表表达式
8.2.2.1 使用半连接转换优化IN
和EXISTS
子查询谓词
8.2.2.2 使用物化优化子查询
8.2.2.3 使用EXISTS
策略优化子查询
8.2.2.4 使用合并或物化优化派生表、试图引用和公共表表达式
8.2.2.5 派生条件下推优化
MySQL查询优化器对子查询的处理有以下可用的不同策略:
-
对于与
IN
、= ANY
或EXISTS
谓词一起使用的子查询,优化器有以下选择:
(1) 半连接
(2) 物化(Materialization 译者:在8.2.2.2 节有专门的介绍)
(3) EXISTS策略 -
对于使用了
NOT IN
、<> ALL
或NOT EXISTS
谓词的子查询,优化器有以下选择:
(1) 物化(Materialization 译者:在8.2.2.2 节有专门的介绍)
(2) EXISTS策略
对于派生表,优化器有以下选择(也适用于视图引用和公共表表达式):
-
将派生表合并到外部查询块中
-
将派生表物化到内部临时表中
下面的讨论将提供有关上述优化策略的更多信息。
备注
使用子查询来更新单表的UPDATE
和DELETE
语句有如下限制:即优化器不会使用半连接或物化子查询优化。作为一种解决方法,请尝试将它们重写为使用多表连接的UPDATE
和DELETE
语句,不要使用子查询。
上一集 MySQL 8.0 官方文档 第八章 优化(二十二)—— 行构造器表达式优化和避免全表扫描
这篇关于MySQL 8.0 官方文档 第八章 优化(二十三)—— 优化子查询、派生表、视图引用和公共表表达式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程
- 2024-11-01部署MySQL集群学习:新手入门教程
- 2024-11-01部署MySQL集群入门:新手必读指南
- 2024-10-23BinLog入门:新手必读的MySQL二进制日志指南
- 2024-10-23Binlog入门:MySQL数据库的日志管理指南
- 2024-10-22MySQL数据库入门教程:从安装到基本操作
- 2024-10-22MySQL读写分离入门教程:轻松实现数据库性能提升