1. 最近遇到许多代码灵异事件,几乎都是本地运行没有问题,一到线上测试就出问题,或是本来没问题,用着用着突然有问题了,新换工作的小九一脸懵逼,开始怀疑人生。

2.对于这种问题,首先一定不要怀疑人生,相信科学。首先排除是否是操作不当引起的问题,如输入框一次输入过多(之前同事一次输入500条数据出了问题),分两次操作就可以了;其次要排除是否是缓存的问题,所以要多清除几遍页面浏览器或app缓存。再其次如果不是缓存的问题,那就要思考为啥不一样,有啥不一样,这时就可以想到数据库,既然代码一样,出了问题就只能是数据库数据的问题了。

3.数据库的问题可能分多钟:其一,可能数据表某一列的值是唯一的,而测试时不小心或不注意的时候将其改成有重复的了;其二,可能数据表中插入了(null)等不合法的数据,导致查出是失败;对于这些问题,我们要debug自己本地没有问题的代码,检查功能逻辑,排查相关数据业务。肉眼直观看不到就讲测试数据库相关表考下来吧,只能重现问题了,能重现的问题都不叫问题,哈哈,,

4.代码没有灵异事件,对于初学者一定要冷静下来,莫慌。以后遇到问题还会更新的。解决完问题是真的爽呐


更新ing:20190712

又遇到了,摸索出一半,留下一半以后再研究吧

故事是我们的一个后台的某个页面打开特别慢,注(本地没问题,客户使用也没问题,就测试服务器上有问题)。由于本地没问题,所以考虑是否是数据的原因,于是跟踪代码将最终的查询语句拷出来,将涉及的三张表从测试服务器的数据库中拷入本地,本以为可以问题重现,结果惊呆宝宝了,本地还是没问题!对的,没问题,一样的数据一样的数据处理,本地很快一秒就可以打开页面,而测试服务器上要30秒!

接下来,小九把数据查询语句搬到测试服务器上去运行,发现是查询的问题,语句查询就要二三十秒,也就三张表30个字段,然后慢慢减少查询字段运行,发现随着查询字段的减少查询时间下降了,这结果蒙蔽了我,让我以为是服务器不行,因为我们测试服是一核的(公司有点小抠,哈哈),然后小九就以为问题解决了

第二天被另一个大佬问话,他让我解决测试服进入慢的问题,我将上面的研究成果告诉他,大佬明确说才30个字段,肯定可以优化的,而且客户以后如果遇到了这个问题,他不会管你是什么原因只会在意能不能用。于是被训一通后,小九又开始研究这该死的问题,不过这次大佬提供了测试数据库给我,终于可以在自己电脑上连接测试库了(感动),这次果然有了新的发现。我发现三张表里有一张表只查询一列,而且查询速度慢好像就是这一列引起的,将该列注释掉查询速度瞬间从15秒变为1秒,问题算是快要找到了吧。

接下来就围着这列反复修改测试,将左外连接查询条件等号左右互换一下,发现有一个测试服务器的查询好了,连续查了几次都是一秒,后台测试也说网页变快了,然后把查询条件左右改回来,速度还是1秒!!所以这应该是莫名其妙的就好了,但是还有一台测试服务器查询还是很慢15秒。然后经过一系列的乱改数据表及数据,好了坏了好了坏了几次后,发现我还是太嫩了,这问题还是以后再出现再研究吧估计原因由以下两点可以找到。

不过本次问题学到两点:

1.EXPLAIN 关键字可以让我们看到mysql如何使用索引来处理select语句以及连接表

2.索引失效的情况(参照博客 mySQL语句优化 )


20190713 通过上面的explain 发现是索引失效引起的查询速度慢,于是通过强制使用索引 :force index(强制要走的那个索引)  终于解决了问题。不过关于为什么之前有时索引有用有时没用这个问题还得考量,不过问题解决了就好啦。。

转载于:https://www.cnblogs.com/dztHome/p/11125086.html

成长篇之代码灵异事件相关推荐

  1. 代码灵异事件 -- php使用redis的hgetall方法出现的怪问题

    首先浏览器请求报504,然后Postman请求无返回,长这样 然后代码中打印出如下结果: 最开始排查的时候考虑是不是内存问题 后来加大内存后还是出现同样的问题 如上图可以看出 $hash变量是已经指向 ...

  2. 灵异事件 !同一个代码在code::blocks和Dev上面运行结果不一样!(一番分析后找到原因!)

    我今天在code的时候发现了一个灵异事件 !同一个代码在code::blocks和Dev上面运行结果不一样! 如图,同一个代码文件在两个编译器上的输出不同: 同样的代码在code::blocks上输出 ...

  3. 又见灵异事件,li中的span右浮动遇到的问题

    最新又见灵异事件,li中的span右浮动遇到的问题 以下是三零网为大家整理的最新又见灵异事件,li中的span右浮动遇到的问题的文章,希望大家能够喜欢! 新闻列表中为了显示时间,加了个span < ...

  4. 2017年经历的那些灵异事件

    2017年快要过去了,回顾这一年来,在业务代码里,开发新功能占据70%,修复BUG占了30%,在解决的这些BUG中,大部分都是代码级别的错误,使用 Chrome Devtools 基本都可以解决,但其 ...

  5. 重大灵异事件!我的手机大半夜地自己在B站看番剧!!!

    我把灵异过程录下来了,速看! 重大灵异事件!我的手机大半夜地自己在B站看番剧!!! 其实,我利用了appium+python实现手机自动化爬虫B站热门番剧数据功能,具体操作如下: 一.搭建环境 1.搭 ...

  6. TextBox灵异事件之背后神秘的深度灵异事件真相揭秘

    最近又忙于秋色园和微博粉丝精灵的开发,本来N天前应该出来的文,迟来了好几天,今天抽空写了写,把事件的真相给大伙说清楚: 上篇:半解TextBox灵异事件背后神秘的深度灵异事件,一文中,一共提出两个问题 ...

  7. 半解TextBox灵异事件背后神秘的深度灵异事件

    2019独角兽企业重金招聘Python工程师标准>>> TextBox灵异事件: 就在前几天,当我来到当下所在的网络时,查看微博粉丝精灵后台时,一件很灵异的事情发生了:TextBox ...

  8. printf 中的伪灵异事件

    printf 中的 %c 输出的伪灵异事件 问题描述: 定位到下面代码,unsigned char数组 fqdn 存放一些字符串.如果按照下面代码编译,则可以正常工作,但如果将 problem lin ...

  9. 世界十大无法科学解释灵异事件(进来发表自己看发)

    1.法老咒语(世界最大灵异事件)  2.葡萄牙灵异事件(在网上引起了极大的轰动)  3.伦敦塔闹鬼(超著名)  4.20世纪上海滩灵异事件(孟小冬照片灵异事件)  5.鬼脸(墙壁上出现灵异鬼脸)  6 ...

  10. 提莫隐身+机器人能钩_英雄联盟惊现“灵异事件”,机器还能钩中提莫蘑菇!亚索无辜躺枪...

    原标题:英雄联盟惊现"灵异事件",机器还能钩中提莫蘑菇!亚索无辜躺枪 英雄联盟惊现"灵异事件",机器还能钩中提莫蘑菇!亚索无辜躺枪 相信一些喜欢玩英雄联盟的小伙 ...

最新文章

  1. php链接数据库实行增删查改_利用PHP连接数据库——实现用户数据的增删改查的整体操作实例...
  2. Android自定义ScrollView
  3. hadoop学习-stream-Top K记录
  4. H.264视频RTP负载格式/NALU的类型
  5. java模仿qq好友面板的布局(BoxLayout问题)
  6. linux下配置Java和Go环境
  7. a73*2+a53*2指的是什么_篮球内外线是什么意思?篮球外线是什么位置-百科-
  8. 单片机与嵌入式的关系,单片机是嵌入式的子类
  9. JDK下载与安装教程(超详细)
  10. mysql-bin文件删除与产生的原因
  11. 计算机找不到WPS云盘,wps网盘在哪里打开及如何应用?
  12. 过孔为什么不能打焊盘上?我就想打,怎么办?
  13. RTSP拉流h265(hevc)+AAC关键节点详解!史上最全RTSP+hevc 交互全记录!
  14. php 文件夹打包zip压缩包
  15. 通过pyautogui和excel插件方方格子来实现excel图片导入
  16. 人+山=仙,人+谷=俗
  17. Mysql 慢SQL分析工具pt-query-digest介绍
  18. 2022电大国家开放大学网上形考任务-古代诗歌散文专题非免费(非答案)
  19. 爬取豆瓣电影Top 250的海报图片以及相关信息
  20. ElementUI h5 移动端照片拍照 本地预览 旋转压缩 并上传

热门文章

  1. bzoj3097 Hash Killer I
  2. www.skymaya.com:8080/index.php,www_skymaya_com
  3. Android 获取当前地理位置信息
  4. [国家集训队]跳跳棋
  5. 《天才在左 疯子在右》读书记
  6. 读《天才在左 疯子在右》有感
  7. 从0到1CTFer成长之路环境搭建详细教程
  8. java中的math.abs_在Java中什么意思 Math.abs(x)及同类的的公式
  9. 牛客寒假训练营1 K 冒险公社(线性dp)
  10. 前端的debug调试