问题描述
今天在写项目时发现之前好好的查询接口突然挂了🤔,检查后发现原来是有人往数据里新增了10万条数据,以至于Mysql语句执行的特别慢就不行了。
原因
原因也简单这个接口原本是一张组织机构表关联区域表、组织标准类型表、币种表、行业分类标准表等多张表的联合查询。按照下图的写法已经写了limit分页只取10条,可Mysql确实会很认真的先帮你把10万条数据的外键关系先建立起来,然后在拿最上面的10条给你。emmmmm……🐴🥚
所以数据量一旦多起来后,Mysql的遍历查询结果就不尽人意,10万条语句这一次查询差不多就要3分多钟。
解决思路
解决思路也很简单,我目前想到的做法就是在Mysql与关联表进行关联操作之前,先通过分页、查询条件、约束等减小它的范围。简单点说就是,先查再建视图。
实际步骤
直接放优化后的语句叭
效果展示
最后再看看优化后的速度
0.083秒。恩……真香!🎉