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,现在终结了,那么试试连接查询。各种测试结果如下: 

例如:

 
增加索引后

效果如下

 
 
 

mysql order by 造成语句 执行计划中Using filesort,Using temporary相关语句的优化解决的更多相关文章

  1. 执行计划中Using filesort,Using temporary相关语句的优化解决

    昨天听开发人员提到,相关的彩票网页当中一个页面刷新的很慢,特别是在提取数据的时候,今天早上一到,便去找开发人员要去相关的也没进行浏览,窥探哪些数据出现了问题,开发人员使用PHP开发,所以我用IE很容易 ...

  2. MySQL 执行计划中Extra(Using where,Using index,Using index condition,Using index,Using where)的浅析

      关于如何理解MySQL执行计划中Extra列的Using where.Using Index.Using index condition,Using index,Using where这四者的区别 ...

  3. mysql explain 查看sql语句执行计划概述

    mysql explain 查看sql语句执行计划概述 id:选择标识符select_type:表示查询的类型.table:输出结果集的表partitions:匹配的分区type:表示表的连接类型po ...

  4. MySQL源码解析之执行计划

    MySQL源码解析之执行计划 MySQL执行计划介绍 MySQL执行计划代码概览 MySQL执行计划总结 一.MySQL执行计划介绍 在MySQL中,执行计划的实现是基于JOIN和QEP_TAB这两个 ...

  5. [转载] EXPLAIN执行计划中要重点关注哪些要素

    原文: https://mp.weixin.qq.com/s?__biz=MjM5NzAzMTY4NQ==&mid=400738936&idx=1&sn=2910b4119b9 ...

  6. EXPLAIN PLAN获取SQL语句执行计划

    一.获取SQL语句执行计划的方式 1. 使用explain plan 将执行计划加载到表plan_table,然后查询该表来获取预估的执行计划 2. 启用执行计划跟踪功能,即autotrace功能 3 ...

  7. SQL优化 MySQL版 -分析explain SQL执行计划与Extra

    Extra 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 注:此文章必须有一定的Mysql基础,或观看执行计划入门篇传送门: https:.html 终于总结到哦SQK执行计划的最 ...

  8. SQL优化 MySQL版 -分析explain SQL执行计划与笛卡尔积

    SQL优化 MySQL版 -分析explain SQL执行计划 作者 Stanley 罗昊 [转载请注明出处和署名,谢谢!] 首先我们先创建一个数据库,数据库中分别写三张表来存储数据; course: ...

  9. EXPLAIN执行计划中要重点关注哪些要素(叶金荣)

    原文:http://mp.weixin.qq.com/s/CDKN_nPcIjzA_U5-xwAE5w 导读 EXPLAIN的结果中,有哪些关键信息值得注意呢? MySQL的EXPLAIN当然和ORA ...

  10. EXPLAIN执行计划中要重点关注哪些要素

    MySQL的EXPLAIN当然和ORACLE的没法比,不过我们从它输出的结果中,也可以得到很多有用的信息. 总的来说,我们只需要关注结果中的几列: 列名 备注 type 本次查询表联接类型,从这里可以 ...

随机推荐

  1. Django信号与扩展:深入理解与实践

    title: Django信号与扩展:深入理解与实践 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 后端开发 tag ...

  2. smtplib详解,发送邮件

    创建邮箱账号 1.官网登录邮箱. 2.在邮箱的主界面找到"设置",新版的主界面与旧版稍有不同,一般位于上方,齿轮状的即是. 3.点击齿轮状的设置标志,会弹出一个下拉菜单,在最后有我 ...

  3. Stenciljs 学习之搭建项目

    框架介绍 stenciljs 是用于构建可重用.可扩展的设计系统的工具链.生成在每个浏览器中运行的小型.超快且 100% 基于标准的 Web Component. 更对介绍请参考官方网站 创建项目 使 ...

  4. MVCC(多版本并发控制)详解

    在 MySQL InnoDB存储引擎下,RC.RR 基于 MVCC 进行并发事务控制, MVCC 是基于"数据版本"对并发事务进行访问 用一个例子来解释一下,下面是一张事务执行流程 ...

  5. Java交换map的key和value值

    在Java中,我们都知道直接交换Map的key和value是不被允许的,因为Map的接口设计是基于key-value对的,其中key是唯一的,并且是不可变的(在HashMap等常见的实现中,虽然key ...

  6. .NET程序对接 OpenTelemetry logs

    OpenTelemetry 简介 OpenTelemetry 是一个由 CNCF(Cloud Native Computing Foundation)托管的开源项目,旨在为观察性(Observabil ...

  7. 状态管理(redux)

    https://www.redux.org.cn/ 2013年 Facebook 提出了 Flux 架构的思想,引发了很多的实现.2015年,Redux 出现,将 Flux 与函数式编程结合一起,很短 ...

  8. LeetCode 451. Sort Characters By Frequency 根据字符出现频率排序 (C++/Java)

    题目: Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Inp ...

  9. 用 Easysearch 帮助大型车企降本增效

    最近某头部汽车集团需要针对当前 ES 集群进行优化,背景如下: ES 用于支撑包括核心营销系统.管理支持系统.财务类.IT 基础设施类.研发.自动驾驶等多个重要应用,合计超 50 余套集群,累计数据超 ...

  10. MySQL数据库开发(1)

    数据库的概述 1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式, 它们都可以经过数字化后存入计算机. 在计 ...