[@小川游鱼][¥20]mysql优化时,怎么避免using filesort、using temporary?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

李博 bluemind 2018-12-10 16:01:09 1119

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

Java 关系型数据库 MySQL
分享到
取消 提交回答
全部回答(1)
  • 消失er
    2019-07-17 23:19:19

    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时创建的表;

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题