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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

目前正在开发,SQL审核模块。基础功能已经开发完毕,一路也算顺风顺水,从10月8号开始开发这个模块,在做最后一个功能的时候回滚SQL,突然在开发的过程中有遇见“难事”了,听我徐徐道来。

d6b302d37aba09e358e3be008549e63341511b03

流程介绍:

开发写入要上线SQL,由于开发组长查看,并且审核。判断是否可以执行,如果可以执行可以选择立即执行,或者定时执行,可以选择执行时间。哪怕凌晨执行都可以。(从此不用半夜陪开发上线啦~)。如果上线失败,就会面临SQL回滚。

故事的背景介绍完毕,开始说正文

问题现象,点击SQL回滚,然后然后就卡住了。这部分的代码如下

7112560e543b9ebd477453bedda22a817a665429

代码逻辑:先获取第一个SQL的返回结果,把SQL结果添加到列表中,作为参数传递给第二条SQL作为条件,获得第二条SQL的返回值,添加到字典中,把这个字典返回给django。

就是这段代码,执行时间大概需要40S左右,(我和我的小伙伴都惊呆了)。因为SQL本身并不慢单独执行不到0S。那么问题来了为什么,需要那么久呢。

因为这个问题折腾了很久,到底是哪里消耗了那么多时间呢。苦思冥想,久久不能解。于是我找到了 我的好基友知数堂 zizi老师。

zizi老师:"机智的我一眼就看到了你犯的错。但我就不告诉你,就不告诉你。但我可以跟你一起排错,让你自己来发现“。

帅萌:”大神收下我的膝盖吧~“

zizi老师:”我这就传授你心法,首先你再关键的位置打上时间戳,然后在看看那步消耗时间久“

于是代码就是这样的

5f64a10b107d3ed770bd32098f20ae40469c58e4

zizi老师:”你应该发现了吧,是这步消耗了你太多时间 ,每条SQL要链接MySQL,所以主要消耗时间在这里。“

bdb2517fcf37308a2b0efd42405b2c02e183b478

帅萌说:”嗯,有道理。吱吱老师我的偶像,于是我改了一版本”。

7d089acb589e3214a4db4143df00e8b0714812da

执行时间:

f300fec22d721568563023a7c4b178277f70ef7b

帅萌:“zizi老师好厉害,现在页面出,果然不卡了”

zizi老师:“知道消耗时间在哪里了嘛,你每次执行SQL都需要,频繁的创建链接和销毁链接,中途网络开销的消耗,一条需要消耗1S,那么数目多了自然就会慢。”,当然你后面的哪个版本虽然能解决问题,但我有更好的办法。

帅萌:“汗,快被我自己给蠢哭了。。。zizi老师还有什么其他建议吗?”

zizi老师:"我建议你使用连接池,其实我的课中已经讲过了”第四期第九周时“,这样会快很多。上课有没听课吧,你按照我说的配置,指定速度嗖嗖的~”

帅萌:"zizi老师我这块要不要启用多线程,这样会不会更快”

zizi老师:“目前的状况来说,其实没必要。因为数据库本身访问非常快。主要原因不是SQL慢,而是你创建连接需要消耗时间。”

帅萌:"受教,受教。多谢zizi老师"


原文发布时间为:2018-10-30

本文作者:田帅萌

本文来自云栖社区合作伙伴“老叶茶馆”,了解相关信息可以关注“老叶茶馆”。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
资源调度 测试技术 Linux
一款接口自动化神器—开源接口测试平台Lim(Less is More)
一款接口自动化神器—开源接口测试平台Lim(Less is More)
149 2
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
|
4天前
|
SQL 关系型数据库 MySQL
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
该文章提供了在虚拟机上安装MySQL服务的简化方法,特别是针对新手。作者提供了一个自动化脚本`install_mysql.sh`,使得安装过程更简单。用户需要下载`install.rpm`资源,将其放在指定目录下,然后创建并编辑脚本文件,将提供的代码粘贴进去,通过`chmod u+x`授权,最后运行脚本`./install_mysql.sh [rpm文件路径]`来安装MySQL。文章还附有相关图片说明。
37 1
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
|
4天前
|
SQL 缓存 关系型数据库
MySQL常见问题解决和自动化安装脚本
这篇内容包含了两个主要部分:解决MySQL登录问题和处理GPG密钥问题。当MySQL密码正确但无法登录时,可以通过执行SQL命令`ALTER USER`和`flush privileges`来修改和重置密码。对于MySQL安装时的GPG密钥错误,首先需要强制删除旧的MySQL仓库包,导入新的GPG公钥,然后安装MySQL服务器。如果遇到GPG检查错误,可以使用`--nogpgcheck`参数忽略检查来安装。最后,提供了一个自动化安装MySQL的脚本,用于检查旧版本、卸载残留、安装MySQL8并启动服务。
27 1
MySQL常见问题解决和自动化安装脚本
|
4天前
|
弹性计算 关系型数据库 MySQL
|
4天前
|
数据管理 关系型数据库 MySQL
数据管理DMS产品使用合集之DMS可以接入其他平台的MySQL数据库,是否还支持无感知变更功能
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
4天前
|
监控 数据可视化 安全
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
环境实时数据、动态监测报警,实时监控施工环境状态,有针对性地预防施工过程中的环境污染问题,打造文明生态施工,创造绿色的生态环境。
19 0
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
|
4天前
|
JSON 运维 监控
运维界的新宠!9.7K星认证的轻量级自动化平台等你体验
运维界的新宠!9.7K星认证的轻量级自动化平台等你体验
46 0
|
4天前
|
存储 Kubernetes 关系型数据库
KubeSphere 核心实战之一【在kubesphere平台上部署mysql】(实操篇 1/4)
KubeSphere 核心实战之一【在kubesphere平台上部署mysql】(实操篇 1/4)
68 0
|
4天前
|
传感器 人工智能 监控
智慧工地云信息平台源码(微服务+java+springcloud+uniapp+mysql)
智慧工地云信息平台源码(微服务+java+springcloud+uniapp+mysql)
37 0

推荐镜像

更多