span classMySQL自动化平台那些事-分秒必争

导读 作者:田帅萌(邮箱:tplinux@163.com,欢迎交流) 知数堂MySQL DBA班第9期优秀学员,Python运维开发班第5期学员,现任职知数堂助教 承接上文《构建MySQL自动化平台思路》、《怎么让MySQL自动化平台再快1
原标题:MySQL自动化平台那些事-分秒必争导读作者:田帅萌(邮箱:tplinux@163.com,欢迎交流)知数堂MySQLDBA班第9期优秀学员,Python运维开发班第5期学员,现任职知数堂助教承接上文《构建MySQL自动化平台思路》、《怎么让MySQL自动化平台再快10倍?》。目前正在开发,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老师\"关于连接池的代码,在QQ群中(群号:650149401),分享给大家吧~加入知数堂挑战40万+年薪!知数堂叶金荣与吴炳锡联合打造领跑IT精英培训行业资深专家强强联合,倾心定制MySQL实战/MySQL优化/MongoDB/Python/SQL优化数门精品课程“阅读原文”可获更多正课试听视频密码:hg3h紧随技术发展趋势,定期优化培训教案融入大量生产案例,贴合企业一线需求社群陪伴学习,一次报名,可学1年DBA、开发工程师必修课上千位学员已华丽转身,薪资翻番,职位提升改变已悄然发生,你还在等什么?责任编辑:

本文来自投稿,不代表长河网立场,转载请注明出处: http://www.changhe99.com/a/Wyw59Vlgw8.html

(0)

相关推荐