MYSQL查询优化心得..docxVIP

  • 10
  • 0
  • 约8.49千字
  • 约 11页
  • 2017-01-09 发布于重庆
  • 举报
MYSQL查询优化心得.

查询优化学习心得Mysql性能优化有两个方面,一个是逻辑查询,一个是物理查询。逻辑查询主要从连接的等价转换,连接消除,条件下推等方式对语句进行简化。子查询是逻辑优化过程中需要重点关注的对象,子查询用的不好,往往会造成过多的表扫描。关于子查询的优化,需要注意以下几点:1,在执行计划中出现subQuery, Depented SubQuery的查询方式,说明子查询语句不能优化,查询语句按默认从内外往执行。先执行子查询语句,得到一个中间结果集,再执行外层语句。这种情况主要出现于非spj的子查询语句中,比如含有distinct ,group by 聚合函数,order by limit,union.和相关子查询。2,可以进行优化的子查询语句表现为 嵌套循环Nested Loop算法,连接方式可以是内联接(inner join)或者是半联接(anti-semi-join)如果说在mysql中,内联接的Nested Loop属于子查询展开的话,那么半联接类型的子查询一般是不能够展开的,属于半联接的运算符有exists,not exists,in,not in,半联接是一种查找算法,只要查找到等值数据立刻退出本次循环,not exists,not in则不同,需要全表扫描。对于嵌套循环Nested Loop,mysql的一种优化方式是Materialized,对子查询语句先进行物化,再与外表进行

文档评论(0)

1亿VIP精品文档

相关文档