今天突然收到了用户反馈的问题,表单查询时查不到数据。对于一个菜鸟开发来说,突然遇到这样的反馈还是会背后一凉,因为那个功能很久都没有做过修改,突然出现这样的问题,确实有些无从下手。
于是我先去数据库查看表数据是否正确,当然数据没有问题。我又将我的查询sql放到了Navicat中执行,执行时间30s,共有三千多条数据。
我回到页面,试了试查询少量数据后发现。。。。。。此刻纵享丝滑啊!
那么问题基本锁定了,大概率是数据计算量过大,接口响应时间过长时,网关会报超时,页面就挂了。可是3000条数据还不至于狗带吧!多方调查无果,我还是拜访了百度大神,果然大神送我一个神器“Explain”。他是用于获取sql语句的执行计划的,于是我赶紧操作一番终于发现了是谁在拖后腿。
由于我的sql联查了六个表,其中有一个表没有加索引,导致查询时跟表中全部数据匹配,有将近三万条,这也就是为什么之前没有出现问题,突然就挂掉了的原因,于是我给那个野生表加了索引,那速度简直不要太快。
那,Explain的具体用法,大神已经写得很详细了,可以参考下方链接。
https://blog.csdn.net/fsdfkjai/article/details/121770629
生存不易,感谢各路大神的鼎力支持!今天又是想躺平的一天!!!