开发者社区> 问答> 正文

[@小川游鱼][¥20]mysql优化时,怎么避免using filesort、using temporary?

问题来自Java技术沙龙的丁亮
Java技术沙龙报名链接:https://yq.aliyun.com/promotion/796

展开
收起
李博 bluemind 2018-12-10 16:01:09 3675 0
1 条回答
写回答
取消 提交回答
  • 此人小小程序员一枚~ 写点技术、写点生活。 我的简书 https://www.jianshu.com/u/dd8907cc9fa5 CSDN https://my.csdn.net/ljheee GitHub https://github.com/ljheee

    EXPLAIN 查看执行计划结果的 Extra 列中,如果包含 Using Temporary 就表示会用到临时表。
    using filesort,也是由于不能通过索引完成排序才采用的filesort。

    应该避免下面的场景
    1、UNION查询;
    2、用到TEMPTABLE算法或者是UNION查询中的视图;
    3、ORDER BY和GROUP BY的子句不一样时;
    4、表连接中,ORDER BY的列不是驱动表中的;
    5、DISTINCT查询并且加上ORDER BY时;
    6、SQL中用到SQL_SMALL_RESULT选项时;
    7、FROM中的子查询;
    8、子查询或者semi-join时创建的表;

    2019-07-17 23:19:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载
阿里云企业级自治数据库 RDS 详解 立即下载

相关镜像