|
|
|
|
移动端

老虎机41是什么意思:记一次生产数据库sql优化案例--23秒优化到0.9秒

本文来源:http://www.344078.com/www_3dmgame_com/

www.86msc.com,  有一些养老机构,确实在尝试提升老人的幸福度。记者发现,王石昨日早间发布的朋友圈已经隐隐显示退意:“当你曾经依靠、信任的央企华润毫无遮掩的公开和你阻击的恶意收购者联手,彻底否认万科管理层时,遮羞布全撕去了。在这样的情况下,关于直播的监管条例陆续出炉。现在,该理论的开创者之一,伦敦帝国理工学院教授JooMagueijo与加拿大圆周理论物理研究所的NiayeshAfshordi基于这一理论已经做出了一个预测,可以检验它的可靠性。

宇宙学家正在更详细地解读这一数字,因此,这一预言可能马上就能经受检验了不管是证实还是证伪。今天我们给大家解释的万磁王是来着波黑的58岁男子MuhibijaBuljubasic。根据Keane的报告,新视野号探测器正好拍到了其中的一些,而这些断层与裂缝的性质基本与团队预测的相符。龙德基金副总裁龙泊中表示,二十年前的高尔夫运动算是创新,但是发展下来,到目前为止一直都少有变化,这便是内容创新的缺乏。

21560/112--/--13620/3788--/--7302/56000--/--11253/9099--/--7950/2631--/--17460/160--/--1640/216--/--5290/1564--/--7300/300--/--15700/2262--/--17190/647--/--12450/8840--/--3400/353--/--4870/1473--/--11330/4770--/--8960/2--/--5030/1--/--5260/3--/--1960/3--/--8850/3--/--13840/4--/--2520/3--/--3420/5--/--10500/3--/--7060/3--/--2480/4--/--3790/8--/--6700/6--/--30260/9--/--4590/8--/--1530/11--/--6290/10--/--10920/10--/--4110/8--/--37940/6--/--3540/12--/--9980/7--/--15960/7--/--23190/12--/--3290/12--/--4280/19--/--2970/28--/--7740/26--/--14470/19--/--570/16--/--16230/35--/--3330/12--/--21120/1290--/--12900/13--/--9850/17--/--3150/19--/--1500/15--/--22350/396--/--10370/13--/--10900/27--/--3330/22--/--5649/18548--/--52730/15--/--3420/15--/--3450/14--/--25840/22--/--13890/18--/--13890/12--/--8190/15--/--215629/544--/--9800/33--/--7390/52--/--24920/25--/--9430/47--/--32570/32--/--5320/14--/--5400/15--/--17050/28--/--3940/10--/--1540/18--/--11031/34743--/--10900/61--/--5841/609--/--10470/15--/--5470/31--/--25810/19--/--3190/29--/--24050/12--/--2680/11--/--1740/9--/--14180/14--/--12040/120--/--31321/2312--/--20361/1589--/--13060/665--/--6140/737--/--7060/2209--/--98182/68768--/--24200/1723--/--7900/3614--/--5690/249--/--5190/3261--/--除去产品性能,每一块360巴迪龙儿童手表SE都有着独特的意义。这之外,索尼把指纹识别这个动作彻底融入锁屏和解锁逻辑中,在操作上也明显比一个按键负责识别指纹和解锁,另外一颗按键负责锁屏要清晰顺畅。在XperiaXZ以前,广大索粉还指望:一个金属系列X,一个双面玻璃旗舰系列Z。

新项目业务人员反馈说最近订单发放模块经常很卡,导致总是有锁的情况发生,在用慢查询和开启锁监控观察后发现实际上只是单条查询慢造成的阻塞锁,这里考虑先对单条查询做一下优化。

作者:波波说运维来源:今日头条|2019-09-27 17:24

新项目业务人员反馈说最近订单发放模块经常很卡,导致总是有锁的情况发生,在用慢查询和开启锁监控观察后发现实际上只是单条查询慢造成的阻塞锁,这里考虑先对单条查询做一下优化。

一、优化前的表结构、数据量、SQL、执行计划、执行时间

1. 表结构

A表有90个字段,B表有140个字段。

记一次生产数据库sql优化案例--23秒优化到0.9秒

2. 数据量

  1. select count(*) from A; 
  2. --166713 
  3. select count(*) from B; 
  4. --220810 

3. sql

开启慢查询观察到慢sql如下,单条执行只取200条记录是在23秒左右。

  1. select ob.id, ob.customer, ob.order_no1, ob.accountingitems_code, ob.insert_date, ob.weight,  
  2. ob.volume, ob.qty, ob.project_code,ob.order_no2,ob.order_type1  
  3.  from A as ob  
  4. where ifnull(ob.project_code,'')<>'' and ifnull(ob.accountingitems_code,'')<>''  
  5. and ob.if_cost_proof='N'  
  6. and EXISTS (select 1 from B ol where ob.id=ol.order_base) limit 200; 

记一次生产数据库sql优化案例--23秒优化到0.9秒

记一次生产数据库sql优化案例--23秒优化到0.9秒

4. 执行计划

记一次生产数据库sql优化案例--23秒优化到0.9秒

思路

这两张表都是订单表,全国各地的每天大概会产生十万行左右,这里又是全扫,等后期达到上千万的数据就GG了。目前只是看到这个sql上的问题,先考虑exists部分做一下改写。

二、exists部分改写

  1. select ob.id, ob.customer, ob.order_no1, ob.accountingitems_code, ob.insert_date, ob.weight,  
  2. ob.volume, ob.qty, ob.project_code,ob.order_no2,ob.order_type1  
  3.  from fsl_order_base as ob,fsl_order_base_line ol 
  4. where ob.id=ol.order_base and ob.if_cost_proof='N' and 
  5. ifnull(ob.project_code,'')<>'' and ifnull(ob.accountingitems_code,'')<>'' limit 200; 

执行时间:耗时1.8秒

记一次生产数据库sql优化案例--23秒优化到0.9秒

对应的执行计划:

可以看到ob表走了主键索引

记一次生产数据库sql优化案例--23秒优化到0.9秒

业务确认结果符合需求,那就在这基础上建一下索引吧!

三、ol表建索引

  1. create index idx_obl_id on fsl_order_base_line(order_base); 
  2. create index idx_ob_id_cost on fsl_order_base(id,if_cost_proof); 

加上去但实际上用不到这个索引,选择去掉

记一次生产数据库sql优化案例--23秒优化到0.9秒

四、查看执行时间和执行计划

耗时1.1秒,可惜执行计划还是走了全扫,在对ob表建了索引实际上也用不到,最终只在ol表建了索引。

记一次生产数据库sql优化案例--23秒优化到0.9秒

记一次生产数据库sql优化案例--23秒优化到0.9秒

五、考虑用join改写

把ob结果集缩小,然后再做关联查,并测试是否可以用上索引。

  1. SELECT 
  2.  obc.id, 
  3.  obc.customer, 
  4.  obc.order_no1, 
  5.  obc.accountingitems_code, 
  6.  obc.insert_date, 
  7.  obc.weight, 
  8.  obc.volume, 
  9.  obc.qty, 
  10.  obc.project_code, 
  11.  obc.order_no2, 
  12.  obc.order_type1  
  13. FROM 
  14.  (select * from fsl_order_base AS ob where ob.if_cost_proof = 'N' and ifnull( ob.project_code, '' ) <> '' and ifnull( ob.accountingitems_code, '' ) <> '' ) obc 
  15.  join 
  16.  fsl_order_base_line ol  
  17.  on obc.id = ol.order_base limit 200; 

时间快了一点,但不是很明显,先凑合吧

记一次生产数据库sql优化案例--23秒优化到0.9秒

执行计划保持不变。

记一次生产数据库sql优化案例--23秒优化到0.9秒

总结

建索引前因为走了主键索引,所以时间在1.6秒这样,建索引后不走主键索引了,走ol表的索引,所以在1.5秒,然后缩小结果集去查的话就在1s这样。

更重要的是这两个表一个90个字段,一个150个字段,所以这两个表的关联查后期结果集应该还是会很大,建议是弄成分区表的形式,表能拆分的话是最好的。这些长度不要直接给那么大,这么宽对性能都是有影响的。

记一次生产数据库sql优化案例--23秒优化到0.9秒

【编辑推荐】

  1. www.86msc.com深入剖析 MySQL 索引和 SQL 调优实战
  2. MySQL数据库监控指标之执行性能总结
  3. 详解MySQL数据库监控指标之连接状态
  4. 高并发环境下如何让Redis和MySQL保持数据统一
  5. 阿里面试MySQL灵魂拷问20题,Java程序员秋招必会的8个知识点
【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

用Python玩转excel

用Python玩转excel

让重复操作傻瓜化
共3章 | DE8UG

175人订阅学习

AI入门级算法

AI入门级算法

算法常识
共22章 | 周萝卜123

157人订阅学习

这就是5G

这就是5G

5G那些事儿
共15章 | armmay

128人订阅学习

视频课程+更多

网络工程师(HCNA |CCNA | HCNP实验)

网络工程师(HCNA |CCNA | HCNP实验)

讲师:郝旺53467人学习过

大型电商高并发与秒杀实战视频课程

大型电商高并发与秒杀实战视频课程

讲师:齐毅82434人学习过

小白轻松学Spring Cloud

小白轻松学Spring Cloud

讲师:齐毅79385人学习过

读 书 +更多

非常网管——网络应用

在网络应用越来越复杂的今天,传统的网络应用已经不能满足企业和用户的需要,这就对网络管理员、信息管理部门提出了更高的要求。本书介绍了...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微

菲律宾申博开户合作 www.msc77.com 申博游戏端登入 申博代理开户合作登入 申博现金网登入 菲律宾申博游戏
申博手机客户端下载 新版太阳城申博开户 菲律宾申博娱乐 升级版申博太阳城直营网 www.666msa.com 菲律宾申博直营网
www.168msc.com www.sun777.com www.81138.com 申博游戏网站直营网 申博官网登录登入 申博游戏注册登入