-
MySQL性能优化技术总结:将子查询优化为JOIN的SQL语句优化方法
资源介绍
SQL语句优化-子查询优化为join
优化之前 1、explain select * from T where T.address_id in (select T1.address_id from T1)\G
优化之后 1、create index address_id on T(address_id);
2、explain select * from T join T1 on T.address_id =T1.address_id\G
4.1 Count()和Max()的优化
对于Max()可以使用覆盖索引的来实现优化。
对于Count()函数,count(*)表示所有行数和count(id)不为NULL值的行数的区别。
4.2 子查询的优化
通常的情况下,我们会把子查询优化为join查询,在一对多的关系时,注意数据的重复.使用distinct关键字.
4.3 Group By的优化
由于某些情况下会排序使用到临时表。要先通过子查询,然后通过索引来汇总。过滤条件一般在子查询中。
4.4 Limit查询的优化
limit时常伴随order by从句使用,因此大多数的时候会使用FileSorts这样会造成大量的IO问题.使用主键排序。避免了数据量过大时扫描多的记录。。主键必须是排序.
优化语句:select film_id,description FROM sakilla.film where film_id > 600 and film_id <=605 order by film_id limit 1,5