目前正在开发,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自动化平台那些事-分秒必争相关推荐

  1. 构建MySQL自动化平台思路

    本人在日常工作中,用Python写了一个DB平台. 下面简单地嗦一嗦目前的主要思路和未来展望吧~ 目前主要功能支持: 下一个迭代版本: 高可用模块:打算使用(??和MGR),作者不想用MHA,无理由. ...

  2. 集群资源分配_推荐一款MySQL日常运维和集群管理的自动化平台--Arkcontrol

    概述 今天主要推荐Arkcontrol这个平台,比inception还要强大,目前主要是用在mysql上,如果大家有玩mysql的话,不烦一起来看看吧~ Arkcontrol Arkcontrol是极 ...

  3. 360 私有云平台 MySQL 自动化实现剖析

      本文源自 7 月 13 日『高效开发运维』微信群的在线分享,转载请在文章开头注明来自『高效开发运维』公众号.加群学习请关注『高效开发运维』公众号,并点击菜单中的"加群学习"或直 ...

  4. 利用自动化平台可以做的那亿点事 |得物技术

    前言 相信大家对接口自动化已经不陌生了,这是几乎我们每个迭代都会投入的事情,但耗费了这么多精力去编写和维护,实际的收益如何呢?如果收益不好,是不是说明我们自动化 case 的实现方式.使用方式还有改进 ...

  5. 微店MySQL自动化运维体系的构建之路

    前言 互联网时代,数据库如何满足敏捷开发.敏捷交付的要求?传统靠DBA人肉执行的方式,但在面对大量业务需求时,DBA手速再快,记忆力再好估计也不能提供好的数据库服务.在介绍自动化运维之前,我们先来了解 ...

  6. 有赞MySQL自动化运维之路—ZanDB

    有赞MySQL自动化运维之路-ZanDB 一.前言 在互联网时代,业务规模常常出现爆发式的增长.快速的实例交付,数据库优化以及备份管理等任务都对DBA产生了更高的要求,单纯的凭借记忆力去管理那几十套D ...

  7. python自动化测试看什么书-《自动化平台测试开发-Python测试开发实战》新书出版了...

    首先 第一本书,当初在百度阅读初步写了个电子版,刚一上线不久即收到了数百位读者朋友阅读收藏购买,于是顺利成章就出版了纸质书. <软件自动化测试开发>认真看过的读者应该都知道,介绍的主要是自 ...

  8. python测试开发自学教程-自动化平台测试开发:Python测试开发实战_PDF电子书

    因资源下载地址容易失效,请加微信号359049049直接领取,直接发最新下载地址. 前言 ======================================================= ...

  9. python测试开发自学教程-自动化平台测试开发- Python 测试开发实战

    适读人群 :本书适合从事自动化测试开发技术的广大开发和测试人员使用,也可供产品测试开发管理人员参考. 自动化测试平台测试开发是指开发一个平台系统,结合相关的开源自动化框架进行集成,如 Selenium ...

最新文章

  1. CentOS Linux解决 Device eth0 does not seem to be present
  2. 五分钟让你了解 Java方法(或者叫函数)
  3. php之static静态变量详解
  4. SD-WAN能带来什么好处?
  5. jquery插件编写学习
  6. ubuntu下远程控制LinuxWindow桌面
  7. [HAOI2007] 理想的正方形 (单调队列)
  8. 通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布...
  9. java8堆内存模型_「GC系列」JVM堆内存分代模型及常见的垃圾回收器
  10. linux发布成服务,linux服务简单部署
  11. python开发wince_零基础学习WinCE开发
  12. SQL教程——连接查询之SQL99标准
  13. 官方高清标准地图素材下载地址
  14. 远程桌面管理工具的使用
  15. 计算机系统定义硬盘1GB,硬盘容量是什么意思?常见的硬盘硬盘内部
  16. vue中在哪个生命周期中dom被渲染_Vue生命周期说明
  17. html+视频添加字幕,给视频加滚动字幕,给视频加字幕制作mv 录制的视频配背景音乐...
  18. 一起来学 R编程吧(2)---判断语句switch函数的用法
  19. Java:String类学习笔记
  20. Core Techniques And Algorithms In Game Programming

热门文章

  1. 学习使用Markdown最基础的语法(编辑器通用)
  2. 在Eclipse中使用JUnit4进行单元测试
  3. Zulip 2.0.3 发布,功能强大的群组聊天软件
  4. SDWebImage中文说明
  5. mycat schema.xml 配置文件详解
  6. 第 2 章 Editor
  7. 让seo效果起死回生的妙招
  8. Android Studio中架包打包和依赖冲突解决
  9. 为什么Tomcat的webapps目录下新建的目录不能访问html文件?
  10. 《算法导论》中parallel for 的时间复杂度