MySQL 优化:优化 SQL 语句:优化子查询,派生表和视图引用
Eijux(讨论 | 贡献)2021年4月26日 (一) 10:35的版本 (建立内容为“category:MySQL == 关于 == MySQL 查询优化器有多种策略可用于评估子查询: # 对于'''IN'''(或=ANY)子查询,优化器具有以下选…”的新页面)
关于
MySQL 查询优化器有多种策略可用于评估子查询:
- 对于IN(或=ANY)子查询,优化器具有以下选择:
- 半连接
- 实体化
- EXISTS策略
- 对于NOT IN(或<>ALL)子查询,优化器具有以下选择:
- 实体化
- EXISTS 策略
- 对于派生表,优化器具有以下选择(这也适用于视图引用):
- 将派生表合并到外部查询块中
- 将派生表实体化为内部临时表
- 使用子查询修改单个表的“UPDATE”和“DELETE”语句的局限性在于,优化器不使用半联接或物化子查询优化。解决方法是,尝试将它们重写为使用联接而不是子查询的多表“UPDATE”和“DELETE”语句。