首页 > 其他分享 >最近的项目总结

最近的项目总结

时间:2023-02-05 11:00:23浏览次数:57  
标签:总结 项目 扫表 cdate 最近 线上 table id 测试环境

上线上了大半天,原因:因为慢查询了导致跑不出来,后来同事帮忙看了下发现慢查询了,程序hang住了

select * from table where cdate = '2023-02-01' and id > ? order by id limit 500

这条sql线上执行了300ms,一共900w数据左右,需要半个小时,后来优化了下改成了这样进行扫表,按照id去进行扫表,扫表只需要4分钟,大概每个sql只需要20ms,速度提高很多

     SELECT id,name FROM table  WHERE  id > id and id <= maxId ORDER BY id ASC limit 500

midId: select id from table where cdate = '2023-02-01' order by id asc limit 1
maxId: select id from table where cdate = '2023-02-01' order by id desc limit 1

初始化 id := minId - 1
{
sub 数组
SELECT id,name FROM table WHERE id > id and id <= maxId ORDER BY id ASC limit 500
id = sub.id
}

对比两种扫表方式,第一种走的是 cdate 对应的索引,扫表行数在百万级别以上,然后获取数据需要进行回表
第二种方式直接走的主键索引,这种方式不需要进行回表,而且扫描行数比较低,这种方式是组内大佬进行优化想出来的

好的一点:发现问题,及时求助,同事帮忙定位到了,及时解决了导致没有一直等着,所以线上观察是很重要的,测试环境测试数据量小发现不了很多问题,线上数据量大起来,就会发现很多在测试环境发现不了的问题

慢查询治理: https://www.cnblogs.com/zhangpengfei5945/p/16085441.html

上线以后后续项目线上观察:

发现数据异常,和同事定位问题,是中间对接的时候有个指标的单位没有对其导致界面计算展示错误,需要修复,不然影响后续的任务。这里看到上线以后的数据观察是非常重要的,如果不观察,就不会发现异常,后续修复会更加的困难

上游数据错了,这个时候有点慌,经过旁边同事提醒,还是仔细分析:查数据看历史记录,无论是不是自己的原因,后面遇到问题尽量都不要慌了,深呼吸下,提醒自己,如果是自己的问题,就认,然后去修复改正,如果是上游的问题,就去发出来,然后看看大家有什么方案,积极去解决推动

总结

  • 线上和测试环境的不一致,测试环境正常,线上环境不一定预期内的正常,比如数据量,用户操作等等,都可能是之前没有考虑到的情况,上线之后一定要观察下
  • 慢查询还是要注意的,平时300ms的sql也不会影响使用,有些场景就会影响使用了
  • 后续产品的运营和交互过程中要去观察体验看下,看数据是否符合预期
  • 自己出错了或者上游导致的出错,遇到问题不要慌张,深呼吸,让自己冷静下来,去分析、去解决

标签:总结,项目,扫表,cdate,最近,线上,table,id,测试环境
From: https://www.cnblogs.com/zhangpengfei5945/p/17081872.html

相关文章

  • C++函数总结
    1、fabs返回浮点数的绝对值,abs返回整数绝对值2、运算符重载之后排序比写一个排序函数排序要快structnode{intx,y,z;booloperator<(constnode&p)const{retur......
  • 如何用k8s运行、部署Java项目
    k8s的常用命令  kubectlgetingress-nprodkubectlgetdeployment-nprodkubectlgetpod-nprodkubectlgetservice-nprodkubectllogs-f-nprod......
  • 2022game总结
    游戏总结-对马岛之魂 9/10-战神410/10-战神5   9/10-地平线2西之绝境   10/10-stray 8/10-银河护卫队 8/10![GhostofTsushima_20220311234141](......
  • 怎么使用Git查看项目中代码的提交历史记录?
    怎么使用Git查看项目中代码的提交历史记录?可以在git上使用下面这段指令gitlog--pretty=format:"%ai,%an:%s">>~/Desktop/Readme.log在git上执行完之后,就可以在......
  • #yyds干货盘点#【愚公系列】2023年02月 微信小程序-电商项目-商品详情页面的轮播图功
    前言轮播图是指在一个模块或者窗口,通过鼠标点击或手指滑动后,可以看到多张图片。这些图片统称为轮播图,这个模块叫做轮播模块。轮播图常见于电商类、资讯类应用、功能首页、......
  • vue.js客服系统实时聊天项目开发(二十二)vue项目中router.js路由介绍
    vue项目的路由就相当于我们在网址url上输入的地址,访问的具体网址就是路由拿到项目先看看路由文件,就能知道具体的访问地址了例如下面的router.jsimportVuefrom'vue'......
  • MFC中绘图类总结
    绘图一般在视图类的(屏幕/打印机)绘图消息响应函数OnDraw中进行,例如:voidCTestView::OnDraw(CDC*/*pDC*/){        CTestDoc*pDoc=GetDocument();     ......
  • 19-逻辑门电路知识点总结
    逻辑门电路知识点总结门电路注意事项传输高低电压的问题上一级输出为0,下一级的输入也要认为是0逻辑0和逻辑1都是有范围或区间的,逻辑0有最大值,逻辑1有最小值上一级输......
  • vite(vue3)问题汇总(一)--- 基于vite的项目,修改node_modules中引用的包,但是开发模式下,
    ① 基于vite的项目,修改node_modules中引用的包,但是开发模式下,不会检测到改变的问题:为了提高运行速度,vite在首次运行时,对node_modules中的包进行了esmodule化,存储在n......
  • 第二周总结
    目录一、数据类型元组集合布尔值二、用户交互1、input()2、print()三、格式化输出四、运算符号1、基本运算符之数学运算符2、基本运算符之比较运算符3、赋值符号及用法1.链......