bitsCN.com

昨天听开发人员提到,相关的彩票网页当中一个页面刷新的很慢,特别是在提取数据的时候,

今天早上一到,便去找开发人员要去相关的也没进行浏览,窥探哪些数据出现了问题,开发人员

使用PHP开发,所以我用IE很容易就可以窥探到哪些sql执行的很慢,比如下;

这个图上列出了,也没中取sql语句的相关执行时间预估比例,以此我可以探查到大概哪些语句会

影响到我们的业务系统!首先看到了有个500,200毫秒的问题,熟话说,枪打出头鸟,哈哈,优化

也一样,先把大的问题解决了,在来收拾小的问题(小的问题,也有可能受到大问题的干预造成),

于是我便把该语句找出来;如下;

SELECT

a.user_name as username,

a.order_date as ordertime,

a.bonus_value as bonus,

cm.name_1 as lname

FROM

lot_sellform AS a

INNER JOIN

code_mst AS cm ON a.lottery_id = cm.cd AND a.lottery_type = cm.lot_type

WHERE

a.bonus_value > 0

ORDER BY

a.order_date DESC

limit

10

基本上改弄的索引信息都弄到了,但是我在页面中却看到了这样的情况;如图;

看到type类型基本都走了索引,而且extra列内还有using temporary,using filesort,他们用到了

临时表和在文件内进行了排序,才返回出来,这肯定不是按照我们原先设计的最优路线来走的,

而且相关的索引路线都没走上,这里我有查了相关的资料,在官网上,看到如下内容;(我用蓝色

来表名相关的信息)

在某些情况中,MySQL可以使用一个索引来满足ORDER BY子句,而不需要额外的排序。

即使ORDER BY不确切匹配索引,只要WHERE子句中的所有未使用的索引部分和所有额外的

ORDER BY 列为常数,就可以使用索引。下面的查询使用索引来解决ORDER BY部分:

SELECT * FROM t1

ORDER BY key_part1,key_part2,... ;

SELECT * FROM t1

WHERE key_part1=constant

ORDER BY key_part2;

SELECT * FROM t1

ORDER BY key_part1 DESC, key_part2 DESC;

SELECT * FROM t1

WHERE key_part1=1

ORDER BY key_part1 DESC, key_part2 DESC;

这几句话严重勾起了我的兴趣,爱好!哈,在排序中,去查看没有进行索引,而且我在日期列上

添加了btree索引了!怎么会没走呢?以下是图信息;

从上图可以看出,排序仍然是在临时表,和文件中进行了,而且type还是ALL比较耗时的操作,

这里我又会想起前面官网中提及到的,key_part1,key_part2这两列,在where语句中,和order by中

出现的比率这么频繁,而且上面说,如果where语句中只要为啥用索引语句列的部分,和所有order by

列的数据如果为常数,可以使用索引路线来走,那如果我对两者来进行彼此的绑定了,比如;让其

来做个组合索引!

首先where条件中bonus_value的值,我们取得是常数,而且在进行排序的时候,我们选择的是

order_date日期的列值,如果彼此来进行绑定组合,sql在选择路线的窥探中首先会尝试,组合索

引中位于第一列的数列,进行handle的锁定,遍历到数值后会继续留住该handle的位于LRU列表

头中,接着继续进行数值的排序遍历结果集合,直到handle列被挤出index维护的元头之外!

其实这个不是让其走我们的bonus_value,order_date索引路径,而且让其走到我们前面INNER JOIN

中的索引路线,避免了让数据在临时表中出现,或者在磁盘文件中排序,其实就是增大了,我们在链接

条件中我们设计索引路线的概率问题!有点声东击西的概念!哈!以下图供参考:

以此看到走了我们需要的索引路径了!bitsCN.com

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

mysql using temporary_执行计划中Using filesort,Using temporary相关语句的优化解决_MySQL相关推荐

  1. mysql using filesort_Mysql执行计划中的Using filesort

    Using filsort文档中的解释: Mysql需要额外的一次传递,以找出如何按排序顺序检索行,通过根据联接类型浏览所有行并为所有匹配where子句的行保存排序关键字和行的指针来完成排序,然后关键 ...

  2. mysql和oracle执行计划_mysql explain执行计划详解

    原文链接:https://www.cnblogs.com/xiaoboluo768/p/5400990.html mysql> explain  select t1.kprq from    p ...

  3. MySQL Execution Plan--执行计划中的Type列

    在一次的优化过程中,由于没有关注执行计划中type列,仅看key列来查看"使用到的索引",导致优化过程走了不少弯路. 以下面SQL为例: SELECT wave_no, SUM(I ...

  4. SQL Server 2008处理隐式数据类型转换在执行计划中的增强

    关注我们获得更多内容 作者 | 邹建,资深数据库专家,精通各项 SQL Server 技术,具有丰富的管理.维护.优化能力以及业务应用经验.他一直热心于技术知识的分享.传播,持续活跃在 CSDN 和 ...

  5. oracle 计划中的view,为何执行计划中会出现个VIEW: VM_NWVW_1 ?

    为何执行计划中会出现个VIEW:  VM_NWVW_1 ? 数据库中根本没有这个OBJECT. 也不象系统自己产生的! SELECT R.CREATED_OFFICE STOCK_CODE, R.CU ...

  6. 执行计划中的参数解释

    执行计划中的各个参数解释: 一.Recursive calls (递归调用) 1.参考:Oracle Database Reference, 10g Release 2 (10.2).pdf第916页 ...

  7. 执行计划中各字段各模块描述

    在SQL语句的执行计划中,包含很多字段项和很多模块,其不同字段代表了不同的含义且在不同的情形下某些字段.模块显示或不显示,下 面的描述给出了执行计划中各字段的含义以及各模块的描述. 有关执行计划中各字 ...

  8. 浅析SQL SERVER执行计划中的各类怪相

    在查看执行计划或调优过程中,执行计划里面有些现象总会让人有些疑惑不解: 1:为什么同一条SQL语句有时候会走索引查找,有时候SQL脚本又不走索引查找,反而走全表扫描? 2:同一条SQL语句,查询条件的 ...

  9. sql server运算符_SQL Server执行计划中SELECT运算符的主要概念

    sql server运算符 One of the main responsibilities of a database administrator is query tuning and troub ...

最新文章

  1. WPF INotifyPropertyChanged 通过特性减少代码量
  2. uac2.0驱动_关闭Vista中令人讨厌的HP驱动程序UAC弹出更新检查
  3. nyoj 55 懒省事的小明 优先队列 multiset 还有暴力
  4. python jsonpath set value_Python学习:json对象快速访问(续)
  5. Unity3D(三)材质
  6. 用文本文档写的代码怎么运行?
  7. mongoDB 使用 mongoVue
  8. VS语音信号处理(5) C语言PCM格式语音存为WAV格式语音工程实例
  9. OMAPL多核异构通信驱动AD9833波形发生器-Notify组件
  10. Python的Numpy库下载及安装
  11. 硬盘SMART监控工具Scrutiny
  12. 三分钟快速理顺HTMLJSP中单、双引号用法、含义
  13. Java学习——Day13:IO流
  14. 命令行基础、目录和文件管理、教学环境介绍、
  15. 两个实体不是同个类同名字段赋值问题
  16. mxGraph绘图区域使用鼠标滚轮实现放大/缩小
  17. 什么是网站备案?如何查询网站是否备案?
  18. office(如:Word、Excel、PPT 等)文件轻松实现在线预览
  19. Milking Cows【转帖】
  20. Android——bug:not attached to a context.

热门文章

  1. 野火STM32F1开发板 IIC 0.96OLED 波形显示
  2. 腾讯研究院夹缝中生存 35万元年薪难求才(转)
  3. 2008年8月5号,晴,今天天气开始变热了。业精于勤,荒于嬉。—— 韩 愈《进学解》
  4. ubuntu 16.04 安装 openCV 3.2 --对该问题的处理CMake Error at cmake/OpenCVModule.cmake:295 (message)
  5. 04刘笑维-05刘洪雨-实训一
  6. Java 基础语法(1)- 注释、标识符、关键字
  7. eLife | 利用进化信息预测蛋白质界面间残基-残基相互作用
  8. 不权威的国产CPU发展历程
  9. Qt界面之侧边栏隐藏和滑出
  10. DVWA11_Insecure CAPTCHA(不安全的验证码)