前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生产SQL优化--Using filesort

生产SQL优化--Using filesort

作者头像
疯狂的KK
发布2021-03-19 17:40:44
5000
发布2021-03-19 17:40:44
举报
文章被收录于专栏:Java项目实战Java项目实战

场景:用户反馈,xx功能生产环境反应过慢,数据最长8秒响应

接口定位:无复杂逻辑,定位到具体SQL

SQL分析

  1. 无索引命中,a表全表扫描
  2. Extra Using filesort

Using filesort 是什么意思?

官方的定义是,MySQL must do an extra pass to find out how to retrieve the rows in sorted order. The sort is done by going through all rows according to the join type and storing the sort key and pointer to the row for all rows that match the WHERE clause . The keys then are sorted and the rows are retrieved in sorted order。

MySQL需要额外的一次传递,以找出如何按排序顺序检索行。通过根据联接类型浏览所有行并为所有匹配WHERE子句的行保存排序关键字和行的指针来完成排序。然后关键字被排序,并按排序顺序检索行。标红,重点。即回表操作。

完整SQL隐藏关键信息

代码语言:javascript
复制
explain select  xxfrom   a left join  r on  a.x= r.xwhere  xx   xx  xx  xx   xxorder by  a.submitTime desclimit 0 ,10

查询a表进行一次回表操作

1强制使用索引

FORCE INDEX (ind_zzz)

没有任何效果

order by 字段建立索引

测试

代码语言:javascript
复制
完成响应 249ms

测试数据命中索引

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 赵KK日常技术记录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档