位置: 编程技术 - 正文

mysql优化系列 DELETE子查询改写优化(mysql优化技巧实战)

编辑:rootadmin

推荐整理分享mysql优化系列 DELETE子查询改写优化(mysql优化技巧实战),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql优化语句,mysql优化总结,mysql常用优化方案,mysql优化总结,mysql常用优化方案,mysql 优化口诀,mysql 优化口诀,mysql优化十大技巧,内容如对您有帮助,希望把文章链接给更多的朋友!

1、问题描述

朋友遇到一个怪事,一个用子查询的DELETE,执行效率非常低。把DELETE改成SELECT后执行起来却很快,百思不得其解。

下面就是这个用了子查询的DELETE了:

几个表的DDL是这样的:

上面这个SQL的执行耗时是:.秒Query OK, 5 rows affected (. sec)如果我们把DELETE改写成SELECT的话,执行耗时仅是:0秒,来对比看下执行计划:

mysql优化系列 DELETE子查询改写优化(mysql优化技巧实战)

可以看到,trade_info 表从的全表扫描(type=ALL)变成了基于主键的等值查询(type=eq_ref),计划扫描数据量也从万变成了1条,而且还可以避免回表,这2个SQL对比代价相差巨大。

2、优化思路

既然这个SQL把DELETE改成SELECT后执行效率就可以获得很大提升,除此外没特别区别,可能是查询优化器方面有些不足,导致无法直接优化,就得另想办法了。我们的思路是把基于子查询的DELETE简化改写成多表JOIN后DELETE(一般来说,子查询效率比较低的话,可以考虑改写成JOIN),多表DELETE的语法课参考: t1 FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;

参照上面的形式,改写之后的SQL变成了下面这样:

可以看到新的SQL执行效率相对就高很多了,不需要再扫描万条记录,执行耗时只需:0.秒。

Query OK, 5 rows affected (0. sec)

3、其他建议

虽然MySQL 5.6及以上的版本对子查询做了优化,但从本案例的结果来看,在一些情况下还是不如意。因此,如果发现有些子查询SQL效率比较差的话,可以尝试改写成JOIN形式,看看是否有所提升。此外,也要勇于怀疑查询优化器个别情况下存在不足,想办法绕过这些坑。

MySQL中的常用函数 在MySQL中,函数不仅可以出现在select语句及其子句中,而且还可以出现在update、delete语句中。常用的函数有:1.字符串函数;主要用于处理字符串。2.数

MySQL优化案例系列-mysql分页优化 通常,我们会采用ORDERBYLIMITstart,offset的方式来进行分页查询。例如下面这个SQL:SELECT*FROM`t1`WHEREftype=1ORDERBYidDESCLIMIT,;或者像下面这个不带任何条件的

Advanced Pagination for MySQL(mysql高级分页) 在叶子的文章里谈到了使用innerjoin从而减少了对page的扫描也就是减少了所谓的回表例如:SELECT*FROM`t1`INNERJOIN(SELECTidFROM`t1`ORDERBYidDESCLIMIT,)t2USING(id)

标签: mysql优化技巧实战

本文链接地址:https://www.jiuchutong.com/biancheng/348275.html 转载请保留说明!

上一篇:Mysql彻底解决中文乱码问题的方案(Illegal mix of collations for operation)(mysql 1449解决)

下一篇:MySQL中的常用函数(mysql函数用法)

  • 税金及附加要扣除吗
  • 城市维护建设税的计税依据是什么
  • 收到以前年度退所得税分录
  • 支付证明单算附件吗
  • 一个人可以做多少家公司法人
  • 研发费用辅助账是什么意思
  • 退伍士兵增值税减免账务处理
  • 科技成果转化奖励
  • 医院收到卫生局补助会计分录怎么写
  • 含运费的原材料会计分录
  • 融资租赁开始日最低租赁付款额
  • 无法收回的款项怎么记账
  • 实收资本重复交的印花税可以申请退税吗?
  • 土地使用税怎么征收标准
  • 6%税率的项目(不含金融商品转让)免税么
  • 小规模纳税人国企
  • 如何正确理解新制度经济学与新古典经济学的关系
  • 每个行业都能赚钱吗
  • 费用报销是先记账后付款还是先付款后记账
  • 金融服务利息税率是多少
  • 季度所得税申报可以弥补以前年度亏损吗
  • 小规模季报都报哪些税种
  • 企业从境外收回所得税
  • 什么叫冲减进项税额
  • 主营业务成本和库存商品区别
  • 关于销售免税品的规定
  • 金税盘减免税款怎么结转
  • 成本和费用有什么区别与联系
  • php基于反射机制实验报告
  • 安全平台无法认证怎么办
  • php数组函数输出《咏雪》里有多少"片"字
  • PHP:disk_total_space()的用法_Filesystem函数
  • 返还土地出让金如何追缴的
  • 家里装饰镜太多了怎么化解
  • 火星车百家号
  • 拥有自我意识的动物有哪些
  • 实缴资本多久可以取出随便用吗
  • 纳税检查调整的销售额确认收入吗
  • vue3项目实战
  • javascript百炼成仙免费
  • 建筑施工企业增值税税率调整时间
  • php判断是否为整数
  • 电脑自学网
  • 会计凭证的装订范围包括
  • 货物运输费含税吗
  • 银行代发工资流程
  • 长期股权投资会计准则2021修订
  • mysql命令行删除库中的所有表
  • 空白发票作废怎么处理
  • 基本户收到款不入账
  • 代开普通发票需提供哪些材料?
  • 库存冲红是什么意思
  • 一般纳税人福利费
  • 收到科技局研发项目资金计入什么科目
  • 营改增后众筹融资业务的会计处理分析?
  • 产品销售收入的确认条件
  • 小规模纳税人收到专票后如何处理
  • 运费发票没到可以先计提吗
  • 季度现金流量表本期数和上期数
  • 非本公司员工能否享受本公司的福利
  • 工业企业销售商品
  • mysql存储过程中调用存储过程
  • win8系统摄像头怎么打开
  • 电脑ios怎么安装
  • linux 匹配字符
  • win 8系统怎么样
  • win8.1快捷键
  • win8.1进不了系统
  • win8怎么关电脑
  • win7 win10 win8
  • linux shell !
  • cocos2dx官方教程
  • 置顶朋友圈所有人能看到吗
  • javascript 基础篇2 数据类型,语句,函数
  • 原生js常用的方法
  • 微信假消息
  • 车辆保险增值税税率是多少
  • 个人自行申报纳税
  • 四川省网上税务局怎么登录
  • 深圳房东有钱吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设