美文网首页
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

    order by 优化 优化内容 通过添加合适索引 去掉不必要的返回字段 介绍:表结构中 d字段未添加索引 c字段...

  • 18.MySQL的SQL优化

    一、SQL语句优化 (1)使用limit对查询结果的记录进行限定, 同时使用order by 索引列(2)避免se...

  • 1 SQL查询优化

    SQL语句优化 对查询进行优化,要尽量避免全表扫描。在 where 或 order by 的列上加索引。 尽量避免...

  • Msql(3)-SQL优化

    一、sql优化 1. 避免全表扫描 2. 考虑在where 及 order 涉及的列建立索引 3. 避免在wher...

  • Mysql 优化

    1.Sql优化 1)sql优化分析2)索引优化3)sql语句优化4)一些常用的技巧优化 (正则、函数) 2.优化数...

  • 转载:SQL语句性能优化

    SQL语句性能优化 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及...

  • 如何写好sql语句?

    一,SQL语句性能优化 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by ...

  • 爆肝,52条SQL语句,性能优化,干货必收藏 !

    SQL语句性能优化 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及...

  • SQL优化

    SQL语句优化 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立...

  • 常见面试题

    sql 优化 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索...

网友评论

      本文标题:SQL优化2 order by

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