MySQL自动化平台那些事-分秒必争
目前正在开发,SQL审核模块。基础功能已经开发完毕,一路也算顺风顺水,从10月8号开始开发这个模块,在做最后一个功能的时候回滚SQL,突然在开发的过程中有遇见“难事”了,听我徐徐道来。
流程介绍:
开发写入要上线SQL,由于开发组长查看,并且审核。判断是否可以执行,如果可以执行可以选择立即执行,或者定时执行,可以选择执行时间。哪怕凌晨执行都可以。(从此不用半夜陪开发上线啦~)。如果上线失败,就会面临SQL回滚。
故事的背景介绍完毕,开始说正文。
问题现象,点击SQL回滚,然后然后就卡住了。这部分的代码如下
代码逻辑:先获取第一个SQL的返回结果,把SQL结果添加到列表中,作为参数传递给第二条SQL作为条件,获得第二条SQL的返回值,添加到字典中,把这个字典返回给django。
就是这段代码,执行时间大概需要40S左右,(我和我的小伙伴都惊呆了)。因为SQL本身并不慢,单独执行不到0S。那么问题来了为什么,需要那么久呢。
因为这个问题折腾了很久,到底是哪里消耗了那么多时间呢。苦思冥想,久久不能解。于是我找到了 我的好基友知数堂 zizi老师。
zizi老师:"机智的我一眼就看到了你犯的错。但我就不告诉你,就不告诉你。但我可以跟你一起排错,让你自己来发现“。
帅萌:”大神收下我的膝盖吧~“
zizi老师:”我这就传授你心法,首先你再关键的位置打上时间戳,然后在看看那步消耗时间久“
于是代码就是这样的
zizi老师:”你应该发现了吧,是这步消耗了你太多时间 ,每条SQL要链接MySQL,所以主要消耗时间在这里。“
帅萌说:”嗯,有道理。吱吱老师我的偶像,于是我改了一版本”。
执行时间:
帅萌:“zizi老师好厉害,现在页面秒出,果然不卡了”
zizi老师:“知道消耗时间在哪里了嘛,你每次执行SQL都需要,频繁的创建链接和销毁链接,中途网络开销的消耗,一条需要消耗1S,那么数目多了自然就会慢。”,当然你后面的哪个版本虽然能解决问题,但我有更好的办法。
帅萌:“汗,快被我自己给蠢哭了。。。zizi老师还有什么其他建议吗?”
zizi老师:"我建议你使用连接池,其实我的课中已经讲过了”第四期第九周时“,这样会快很多。上课有没听课吧,你按照我说的配置,指定速度嗖嗖的~”
帅萌:"zizi老师我这块要不要启用多线程,这样会不会更快”
zizi老师:“目前的状况来说,其实没必要。因为数据库本身访问非常快。主要原因不是SQL慢,而是你创建连接需要消耗时间。”
帅萌:"受教,受教。多谢zizi老师"
原文发布时间为:2018-10-30
本文作者:田帅萌
本文来自云栖社区合作伙伴“老叶茶馆”,了解相关信息可以关注“老叶茶馆”。
MySQL自动化平台那些事-分秒必争相关推荐
- 构建MySQL自动化平台思路
本人在日常工作中,用Python写了一个DB平台. 下面简单地嗦一嗦目前的主要思路和未来展望吧~ 目前主要功能支持: 下一个迭代版本: 高可用模块:打算使用(??和MGR),作者不想用MHA,无理由. ...
- 集群资源分配_推荐一款MySQL日常运维和集群管理的自动化平台--Arkcontrol
概述 今天主要推荐Arkcontrol这个平台,比inception还要强大,目前主要是用在mysql上,如果大家有玩mysql的话,不烦一起来看看吧~ Arkcontrol Arkcontrol是极 ...
- 360 私有云平台 MySQL 自动化实现剖析
本文源自 7 月 13 日『高效开发运维』微信群的在线分享,转载请在文章开头注明来自『高效开发运维』公众号.加群学习请关注『高效开发运维』公众号,并点击菜单中的"加群学习"或直 ...
- 利用自动化平台可以做的那亿点事 |得物技术
前言 相信大家对接口自动化已经不陌生了,这是几乎我们每个迭代都会投入的事情,但耗费了这么多精力去编写和维护,实际的收益如何呢?如果收益不好,是不是说明我们自动化 case 的实现方式.使用方式还有改进 ...
- 微店MySQL自动化运维体系的构建之路
前言 互联网时代,数据库如何满足敏捷开发.敏捷交付的要求?传统靠DBA人肉执行的方式,但在面对大量业务需求时,DBA手速再快,记忆力再好估计也不能提供好的数据库服务.在介绍自动化运维之前,我们先来了解 ...
- 有赞MySQL自动化运维之路—ZanDB
有赞MySQL自动化运维之路-ZanDB 一.前言 在互联网时代,业务规模常常出现爆发式的增长.快速的实例交付,数据库优化以及备份管理等任务都对DBA产生了更高的要求,单纯的凭借记忆力去管理那几十套D ...
- python自动化测试看什么书-《自动化平台测试开发-Python测试开发实战》新书出版了...
首先 第一本书,当初在百度阅读初步写了个电子版,刚一上线不久即收到了数百位读者朋友阅读收藏购买,于是顺利成章就出版了纸质书. <软件自动化测试开发>认真看过的读者应该都知道,介绍的主要是自 ...
- python测试开发自学教程-自动化平台测试开发:Python测试开发实战_PDF电子书
因资源下载地址容易失效,请加微信号359049049直接领取,直接发最新下载地址. 前言 ======================================================= ...
- python测试开发自学教程-自动化平台测试开发- Python 测试开发实战
适读人群 :本书适合从事自动化测试开发技术的广大开发和测试人员使用,也可供产品测试开发管理人员参考. 自动化测试平台测试开发是指开发一个平台系统,结合相关的开源自动化框架进行集成,如 Selenium ...
最新文章
- CentOS Linux解决 Device eth0 does not seem to be present
- 五分钟让你了解 Java方法(或者叫函数)
- php之static静态变量详解
- SD-WAN能带来什么好处?
- jquery插件编写学习
- ubuntu下远程控制LinuxWindow桌面
- [HAOI2007] 理想的正方形 (单调队列)
- 通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布...
- java8堆内存模型_「GC系列」JVM堆内存分代模型及常见的垃圾回收器
- linux发布成服务,linux服务简单部署
- python开发wince_零基础学习WinCE开发
- SQL教程——连接查询之SQL99标准
- 官方高清标准地图素材下载地址
- 远程桌面管理工具的使用
- 计算机系统定义硬盘1GB,硬盘容量是什么意思?常见的硬盘硬盘内部
- vue中在哪个生命周期中dom被渲染_Vue生命周期说明
- html+视频添加字幕,给视频加滚动字幕,给视频加字幕制作mv 录制的视频配背景音乐...
- 一起来学 R编程吧(2)---判断语句switch函数的用法
- Java:String类学习笔记
- Core Techniques And Algorithms In Game Programming