MySQL自动化平台那些事-分秒必争
目前正在开发,SQL审核模块。基础功能已经开发完毕,一路也算顺风顺水,从10月8号开始开发这个模块,在做最后一个功能的时候回滚SQL,突然在开发的过程中有遇见“难事”了,听我徐徐道来。
流程介绍:
开发写入要上线SQL,由于开发组长查看,并且审核。判断是否可以执行,如果可以执行可以选择立即执行,或者定时执行,可以选择执行时间。哪怕凌晨执行都可以。(从此不用半夜陪开发上线啦~)。如果上线失败,就会面临SQL回滚。
故事的背景介绍完毕,开始说正文。
问题现象,点击SQL回滚,然后然后就卡住了。这部分的代码如下
代码逻辑:先获取第一个SQL的返回结果,把SQL结果添加到列表中,作为参数传递给第二条SQL作为条件,获得第二条SQL的返回值,添加到字典中,把这个字典返回给django。
就是这段代码,执行时间大概需要40S左右,(我和我的小伙伴都惊呆了)。因为SQL本身并不慢,单独执行不到0S。那么问题来了为什么,需要那么久呢。
因为这个问题折腾了很久,到底是哪里消耗了那么多时间呢。苦思冥想,久久不能解。于是我找到了 我的好基友知数堂 zizi老师。