提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
多表查询优化
驱动表结论
1.外连接
左外连接: 一般来说:左表为驱动表,右边为被驱动表
2.内连接
对于内连接来讲,如果表的连接条件中只能有一个字段有索引,则有索引的字段所在的表会被作为被驱动表出现。
对于内连接来说,在两个表的连接条件都存在索引的情况下,会选择小表作为驱动表。“小表驱动大表”
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优化

分页查询优化
  
|