位置: 编程技术 - 正文

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函数用法)

  • 补做前几年税审对报税税务评级有什么影响?
  • 未交增值税是什么科目
  • 什么叫风险纳税人员
  • 应付账款里的暂估
  • 电子承兑转出后银行有凭证吗
  • 集团内部借款利息收入增值税
  • 个体工商户营业执照年检网上申报
  • 销售清单要装订吗
  • 航天金税盘证书口令错误
  • 商品折扣促销方式的会计处理如何做?
  • 公司租金收入交多少税
  • 个体户报税可以朋友代替吗
  • 劳务费发票和建筑劳务费发票
  • 外贸出口企业城市排名
  • 发票报销的补助是否缴纳个人所得税?
  • 技术研发费加计扣除政策
  • 审计费用收取标准的2020
  • 4月份到期包括4月吗
  • 职工教育经费是多少
  • 成本和费用属于资产吗
  • 房地产预缴所得税的计税基础
  • 土地补偿款会议记录范文
  • 税法的构成要素中,()是税法最基本的要素
  • 售后租回交易形成融资租赁会计处理
  • php socket_create
  • 小规模负数发票怎么申报增值税
  • 败诉方承担诉讼费缴直接付给法院还是胜诉方
  • ubuntu20.04.1安装
  • hostnamectl命令
  • 利息进项税是否含增值税
  • 文化事业建设费的征收范围
  • 应收的货款
  • 处置子公司利润表
  • 房地产企业土地使用税纳税义务终止
  • 在excel中怎么制作
  • 税收分类编码是什么意思啊
  • 建筑安装的扩展性是指
  • 筹建期间的开办费属于资产吗
  • 购买办公用品属于什么凭证类型
  • 营改增是从什么时候开始实施的
  • 个税起征点调整最新消息
  • 贴现的利息通过什么会计科目核算
  • 企业固定资产内部控制风险防范体系的构建原则
  • 代别人公司发工资是工资薪金还是劳务报酬
  • 小规模如何申报1个点
  • 航天信息何去何从
  • 合并报表成本法调整为权益法分录
  • 工商银行代收是什么意思
  • 房产公司销售成本怎么算
  • 银行对账单怎么打印
  • mysql大小
  • mysql 常用
  • win8.1官方
  • samba webui
  • guest怎么用
  • win8错误代码0xc0000001开不了机
  • window预览
  • win10注销系统会怎么样
  • linux开启关闭命令
  • wind8桌面
  • windows e
  • js仿QQ中对联系人向左滑动、滑出删除按钮的操作
  • material design app
  • 如何理解vue
  • 搭建入门
  • particular粒子怎么用
  • 安卓中textview
  • jQuery ajax分页插件实例代码
  • android权限管理
  • 欢迎使用来电提醒业务是什么意思
  • 总公司与分公司的法律责任
  • 国家辽宁税务总局
  • 贵州省地方税务局房地产税收征收管理办法
  • 成品油消费税税率包括哪些
  • 江西税务登记查询系统
  • 出口退税企业的账务处理
  • 陕西省国税务局大企业处长邓谷祥简历
  • 浙江国税电子税务局申报时间
  • 电子保险怎么查询车船税
  • 西安个人完税证明怎么开
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设