zoukankan      html  css  js  c++  java
  • mysql order by 造成语句 执行计划中Using filesort,Using temporary相关语句的优化解决

    mysql> explain  select permission.* from t_rbac_permission   permission  inner JOIN  t_rbac_acl  acl  on acl.PERMISSION_ID=permission.ID
     where  permission.menu=1 and acl.PRINCIPAL_TYPE=0     order by permission.create_date desc;
    +----+-------------+------------+--------+--------------------+---------+---------+-----------------------------+------+----------------------------------------------+
    | id | select_type | table      | type   | possible_keys      | key     | key_len | ref                         | rows | Extra                                        |
    +----+-------------+------------+--------+--------------------+---------+---------+-----------------------------+------+----------------------------------------------+
    |  1 | SIMPLE      | acl        | ALL    | FKE43AF088F9936F96 | NULL    | NULL    | NULL                        |   94 |  Using where; Using temporary; Using filesort |
    |  1 | SIMPLE      | permission | eq_ref | PRIMARY            | PRIMARY | 98      | bs_common.acl.PERMISSION_ID |    1 | Using where                                  |
    +----+-------------+------------+--------+--------------------+---------+---------+-----------------------------+------+----------------------------------------------+
    2 rows in set (0.00 sec)
     
     
     
     explain  select permission.* from t_rbac_permission   permission  inner JOIN  t_rbac_acl  acl
        on acl.PERMISSION_ID=permission.ID   where   permission.menu=1 and acl.PRINCIPAL_TYPE=0      ;
    +----+-------------+------------+--------+--------------------+---------+---------+-----------------------------+------+-------------+
    | id | select_type | table      | type   | possible_keys      | key     | key_len | ref                         | rows | Extra       |
    +----+-------------+------------+--------+--------------------+---------+---------+-----------------------------+------+-------------+
    |  1 | SIMPLE      | acl        | ALL    | FKE43AF088F9936F96 | NULL    | NULL    | NULL                        |   94 |  Using where |
    |  1 | SIMPLE      | permission | eq_ref | PRIMARY            | PRIMARY | 98      | bs_common.acl.PERMISSION_ID |    1 | Using where |
    +----+-------------+------------+--------+--------------------+---------+---------+-----------------------------+------+-------------+
     
     
    ????? why    加上   order by permission.create_date desc 的影响??? 
     首先查看相关字段是否加上索引如 order by的字段是否加上索引。加上索引之后单表查询看如何??

     

     

     ok 单表查询还是Using filesort. 查询相关资料进行组合索引试试看

    ok,现在终结了,那么试试连接查询。各种测试结果如下: 

     

    例如:

     
    增加索引后

    效果如下

     

     
     
     
  • 相关阅读:
    c语言通过89C51驱动1602液晶显示(入门级别)
    Top k问题的讨论(三种方法的java实现及适用范围)
    单链表是否有环的问题解决与讨论(java实现)
    有效二叉查找树判断(java实现)
    字典序全排列(java实现)
    Java LRU的实现
    Windows 系统中目录 (Directory) 与文件夹 (Folder) 的区别
    Linux 版 SecureCRT 界面变为 Windows 2000 风格的解决办法
    也谈如何获取真实正确的 Windows 系统版本号
    64 位 Windows 平台开发要点之文件系统重定向
  • 原文地址:https://www.cnblogs.com/flzs/p/14231425.html
Copyright © 2011-2022 走看看