MySQL调优--05---多表查询优化子查询优化 ORDER BY优化GROUP BY优化分页查询优化

Posted 高高for 循环

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL调优--05---多表查询优化子查询优化 ORDER BY优化GROUP BY优化分页查询优化相关的知识,希望对你有一定的参考价值。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


多表查询优化

驱动表结论

1.外连接

左外连接: 一般来说:左表为驱动表,右边为被驱动表

2.内连接

对于内连接来讲,如果表的连接条件中只能有一个字段有索引,则有索引的字段所在的表会被作为被驱动表出现。

对于内连接来说,在两个表的连接条件都存在索引的情况下,会选择小表作为驱动表。“小表驱动大表

join语句原理

多表联查–06— join语句原理

子查询优化

子查询执行效率不高的原因

优化

mysql 中,可以使用(JOIN )查询代替子查询,性能会更好

ORDER BY优化

排序优化


案例

1. 创建索引

  • CREATE INDEX idx_age_classid_name ON student (age,classid,NAME);

2. 不限制,索引失效

  • EXPLAIN SELECT SQL_NO_CACHE * FROM student ORDER BY age,classid;

优化器优化策略:查询所有记录,如果走所以索引排序,还需要全部记录回表操作,所以不如全表扫描,加入内存再进行排序快.

3.增加limit过滤条件,----使用上索引了

  • EXPLAIN SELECT SQL_NO_CACHE * FROM student ORDER BY age,classid LIMIT 10;

4.不用回表覆盖索引,----使用上索引了

  • EXPLAIN SELECT SQL_NO_CACHE age,classid,name,id FROM student ORDER BY age,classid;

小结


filesort算法:双路排序和单路排序




GROUP BY优化

分页查询优化



以上是关于MySQL调优--05---多表查询优化子查询优化 ORDER BY优化GROUP BY优化分页查询优化的主要内容,如果未能解决你的问题,请参考以下文章

mysql 查询优化 ~ 多表查询改写思路

MySQL千万级多表关联SQL语句调优

MySQL百万级千万级数据多表关联SQL语句调优

MySQL百万级千万级数据多表关联SQL语句调优

mysql 子查询 优化

MySQL调优--04---explain