mysqlSQL优化,索引优化,查询优化学习笔记

关于in和exist在mysql的使用:

小表驱动大表,小表在子查询中用
用in
在这里插入图片描述
在这里插入图片描述
使用举例:
在这里插入图片描述

mysql查询优化:

1.order 优化:

在这里插入图片描述
在这里插入图片描述

2. group by优化:

group by 先排序后分组

从磁盘读取查询需要的所有列,按照order by列在buffer对它们进行排序,然后扫描排序后的列表进行输出,它的效率更快一些,避免了第二次读取数据。并且把随机10变成了顺序10,但是它会使用更多的空间,

sort_buffer,方法B比方法A要多占用很多空间,因为方法B是把所有字段都取出,所以有可能取出的数据的总大小超出了sort buffer 的容量,导致每次只能取sort-buffer容量大小的数据,进行排序(创建tmp文件,多路合并) ,排完再取取sort_buffer容量大小,再排 从而多次10本来想省一次/0操作,反而导致了大量的I/O操作,反而得不偿失。