mysql中sql优化的经典案例语句(值得一看)

Posted 健康平安的活着

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中sql优化的经典案例语句(值得一看)相关的知识,希望对你有一定的参考价值。

一  案例1 关联更新、删除

1.1 数据内容

1.表结构

CREATE TABLE `tb_crawl` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `group_name` varchar(255) DEFAULT NULL,
  `group_unit` varchar(255) DEFAULT NULL,
  `device_code` varchar(255) DEFAULT NULL,
  `device_name` varchar(255) DEFAULT NULL,
  `point_code` varchar(255) DEFAULT NULL,
  `state` int(5) DEFAULT '0',
  `desc` varchar(255) DEFAULT NULL,
  `ptype` varchar(255) DEFAULT NULL,
  `paixu` int(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12743 DEFAULT CHARSET=utf8;

2.表内容

1.2 常规编写的sql

1.sql语句

desc

update tb_crawl set state=1 where id in(
select id from (
select id,state from  tb_crawl where group_unit=2 and state not in(1)  order  by device_code
)as t 
)

2.查看执行效率

3. 可以看到Extra这栏存在:using filesort,如果数据达到一定量级后,存在慢sql的问题。目前耗时:0.032s

 1.3 优化后sql

1.sql语句

desc
update tb_crawl as o  join  (

select id,state from  tb_crawl where group_unit=2 and state not in(0)  order  by device_code 
) as t
on t.id=o.id
set o.state=0

2.优化后

可见优化后sql:耗时0.015s

 8种 专坑 同事的SQL写法,来试试吧

以上是关于mysql中sql优化的经典案例语句(值得一看)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL中SQL语句优化路径

[MySQL优化案例]系列 — 典型性索引引发CPU负载飙升问题

MySQL存储函数,值得一看

故障案例 | 一次慢SQL优化分析全过程

如何做SQL优化?优化SQL语句,提高SQL查询效率。Effective MySQL之SQL语句最优化

SQL语句常见优化十大案例