MySQL的子查询及相关优化学习教程

2019-01-04 20:20:24于丽

被查询优化器处理后的语句为:

/* select#1 */ select `test`.`t1`.`id1` AS `id1`,`test`.`t1`.`a1` AS `a1`, `test`.`t1`.`b1` AS `b1` from `test`.`t1` where <nop>( ( `test`.`t1`.`a1` < (/* select#2 */ select max(`test`.`t2`.`a2`) from `test`.`t2` where (`test`.`t2`.`a2` > 10) ) ) )

从查询执行计划看,出现了子查询(SUBQUERY),但是,子查询被“max”函数限制,而子查询中的被查询列a2上存在唯一索引,所以可以利用索引求最值,所以MySQL支持“<ANY”式的子查询优化,子查询只被执行一次即可求得最大值。

您可能感兴趣的文章:

MySQL中对表连接查询的简单优化教程MySQL慢查询优化之慢查询日志分析的实例教程大幅优化MySQL查询性能的奇技淫巧对MySQL子查询的简单改写优化浅谈MySQL中的子查询优化技巧mysql 查询重复的数据的SQL优化方案php+mysql查询优化简单实例mysql优化limit查询语句的5个方法浅谈MySQL中优化sql语句查询常用的30种方法MySQL查询优化的5个实用技巧