美文网首页
SQL优化2 order by

SQL优化2 order by

作者: HueyYao | 来源:发表于2021-01-03 22:34 被阅读0次

    order by 优化

    优化内容

    • 通过添加合适索引
    • 去掉不必要的返回字段

    介绍:表结构中 d字段未添加索引 c字段添加索引 a,b字段为复合索引

    举例如下:

    ①添加索引的方式优化

    explain select d,id from t1 order by d;
    Extra:Using filesort
    
    添加索引后:
    explain select c,id from t1 order by c;
    Extra:Using index
    

    由上所得可以在排序字段上添加索引来优化排序语句。

    ②多个字段排序的优化工作

    explain select id,a,c from t1 order by a,c;
    Extra:Using filesort
    
    explain select id,a,b from t1 order by a,b;
    Extra:Using index
    

    因此,如果多个字段排序,可以在多个排序字段上添加联合索引来优化排序语句。

    ③先等值查询再排序的优化

    explain select id,a,d from t1 where a=1000 order by d;
    Extra:Using filesort
    
    explain select id,a,b from t1 where a=1000 order by b;
    Extra:Using index
    

    因此,对于先等值查询再排序的语句,可以通过在条件字段排序字段添加联合索引来优化此类排序语句。

    ④去掉不必要的返回字段

    select * from t1 order by a,b;           /* 根据a和b字段排序查出所有字段的值 */
    Extra:Using filesort
    
    select id,a,b from t1 order by a,b;      /* 根据a和b字段排序查出id,a,b字段的值 */
    Extra:Using index
    

    原因:在检索所有数据时 扫描整个索引并查找到没索引的行的成本比扫描全表的成本更高,所以优化器放弃使用索引。

    相关文章

      网友评论

          本文标题:SQL优化2 order by

          本文链接:https://www.haomeiwen.com/subject/ljopoktx.html