mysql中使用order by 速度很慢解决办法
背景:
今天在优化项目中的一条查询语句,耗时5秒左右,大概6张表关联查询,然后结果进行排序之后再分页查询20条数据。
代码:
SELECT*
FROMt_card_recharge LEFT JOIN s_admin ON t_card_recharge.create_user = s_admin.idLEFT JOIN t_quota ON t_card_recharge.quota_id = t_quota.idLEFT JOIN b_user ON b_user.id = t_quota.user_idLEFT JOIN s_area ON t_card_recharge.area_id = s_area.idLEFT JOIN wx_refund ON t_card_recharge.order_id = wx_refund.id
WHEREt_card_recharge.area_id LIKE CONCAT( '659007', '%' ) AND t_card_recharge.create_time >= concat( '2022-01-01', ' 00:00:00' )
AND t_card_recharge.create_time <= concat( '2022-09-21', ' 23:59:59' )
ORDER BYt_card_recharge.create_time DESC LIMIT 0,20
不分页满足where条件一共3W多条数据,加上order by的时候速度非常慢,去掉速度反而很快。
找原因过程:
使用explain进行查看sql执行情况如下:
可以看到Extra一栏里面的Using temporary; Using filesort,使用了临时表和filesort排序,当查询数量过多,或者排序没有正确使用索引都会出现Using temporary,导致大量的IO操作严重影响查询性能。
解决办法:
优化查询语句,使用FORCE INDEX强制使用索引。
select *
FROMt_card_recharge FORCE INDEX(idx_create_time)
查询时间变成变成了0.6秒。
PS:当mysql不能使用索引进行排序时候会使用自己的排序规则filesort进行排序。
mysql中使用order by 速度很慢解决办法相关推荐
- 虚拟机中vsftpd上传速度慢的解决办法
虚拟机中linux系统安装了vsftpd,但测试过程中发现,上传文件的速度特别慢,找了些资料发现修改一个配置文件就能解决此问题. 首先进入linux系统 -->#vi /etc/resolv.c ...
- win10更新后谷歌浏览器打开访问网页速度很慢解决办法
最近我把自己的华硕飞行堡垒笔记本安装了windows10专业版以后发现凡是安装chrome内核的浏览器(例如猎豹.360极速浏览器.搜狗浏览器等)网页总是打不开,有的打开很慢或者一直加载中,而电脑自带 ...
- 记一次MySQL中Waiting for table metadata lock的解决方法
记一次MySQL中Waiting for table metadata lock的解决方法 参考文章: (1)记一次MySQL中Waiting for table metadata lock的解决方法 ...
- Xbox商店下载软件速度很慢解决方法教学
Xbox商店下载软件速度很慢解决方法教学.有用户使用电脑的时候到Xbox商店去下载游戏,但是却发现下载的速度非常慢.但是访问其他软件的时候,访问速度却非常流畅.那么这个情况是怎么回事呢?一起来看看以下 ...
- 卸载MySQL以及重装卡到Start Services的解决办法(亲测有效,刚重装成功)
卸载MySQL以及重装卡到Start Services的解决办法 重装系统永远是个好办法,但是对于我们程序员来说只要一想到电脑上的环境变量和其他的配置就蔫了.所以这一条就当作是废话吧. 一般来说装My ...
- Office打开很慢解决办法
Office打开很慢解决办法 打开杀毒软件主程序"设置"选项,找到"文档防护",在其中添加后缀名"doc",下次打开WORD就会很快了. ( ...
- 虚拟机中火狐连不上服务器,VMware虚拟机中Ubuntu18.04无法连接网络的解决办法
VMware虚拟机中Ubuntu18.04无法连接网络的解决办法 虚拟机中Ubuntu18.04无法连接网络的解决办法,具体内容如下 对VMware虚拟机进行恢复默认网络设置 恢复虚拟网络默认设置(在 ...
- 学优计算机怎么关机,Windows7电脑关机速度慢的解决办法
最近一位Windows7用户反馈,电脑的关机速度越来越慢了,于是就问小编有没办法解决这个问题.其实电脑关机速度慢和开机速度慢一个道理,基本都是由于磁盘.电源等问题造成的.下面小编就给大家讲解Windo ...
- mac rails mysql_MAC下Rails连接mysql出现 dyld: Symbol not found: _mysql_get_client_info 的解决办法...
MAC下Rails连接mysql出现 dyld: Symbol not found: _mysql_get_client_info 的解决办法 2014-2-12 / 阅读数:5471 / 分类: R ...
最新文章
- Python脚本:聚类小分子数据集
- Java是否支持默认参数值?
- C#实用杂记-EF全性能优化技巧
- [Win/Mac]下载工具推荐及使用
- Unity PlayerPrefs类进行扩展(整个对象进行保存)
- vb6源码 ymodem_VB爱好者乐园(VBGood)
- 第十届泰迪杯数据挖掘挑战赛A题害虫识别YOLOv5模型代码(已跑通,原创作品,持续更新)
- Windows SDK SignTool.exe 微软文件签名工具的使用
- python中find函数的使用方法_详解Python中find()方法的使用
- windows系统背景淡绿护眼色设置
- HTML- 01:HTML 语言简介
- SC2Rank 星际2天梯排行榜 SpringMVC + Spring + Mybatis + Mysql + Maven java web项目
- IK 分词器空格支持
- DFS——组合与排列
- 【转发】RS485总线拓扑结构
- 遇到押金不退,该怎么办?
- iOS 12+ ReplayKit 系统录屏(一)
- android 8.0卡顿,安卓8.0是真的快!但一直说安卓卡的人,却不是iPhone用户
- 虚拟机安装centos6.5,提示Unsupported Hardware Detected检测到不支持的硬件
- 正式-日常作息(2020.11)
热门文章
- 多线程编程(下):线程同步通信
- 生了四位皇帝两位皇后的传奇女性
- Android7.0以上File.createTempFile异常:java.io.IOException: Unable to create temporary file
- STIL中的Procedure和Macro
- 熊猫烧香病毒专杀及手动修复方案
- php amoeba,Amoeba
- postfix支持mysql_Postfix与MySQL的虚拟域配置
- 什么样的女朋友最撩人?
- 四、python爬虫抓取购物网站商品信息--图片价格名称
- arcgis属性表选择两个条件_arcgis中按属性选择的小技巧