小表驱动大表,小表在子查询中用
用in
使用举例:
group by 先排序后分组
从磁盘读取查询需要的所有列,按照order by列在buffer对它们进行排序,然后扫描排序后的列表进行输出,它的效率更快一些,避免了第二次读取数据。并且把随机10变成了顺序10,但是它会使用更多的空间,
sort_buffer,方法B比方法A要多占用很多空间,因为方法B是把所有字段都取出,所以有可能取出的数据的总大小超出了sort buffer 的容量,导致每次只能取sort-buffer容量大小的数据,进行排序(创建tmp文件,多路合并) ,排完再取取sort_buffer容量大小,再排 从而多次10本来想省一次/0操作,反而导致了大量的I/O操作,反而得不偿失。