记录一次sql连表优化

昨天下午运维有说一个查询四秒多,看了下代码sql

 

 

 

 

 

 先把里面的添加数据查询红框内的内容剥离出来,而后看下还要2秒左右数据库

 

 

 接着处理wherein问题,要把wherein处理掉,用join方法。框架

第一次没理解透sql,写成了a表链接b表链接c表,结果出来的数据重复,leftjoin不该该出现这种状况的。而后再看sql发现是a表链接x表,x表为b表链接c表的结果。运维

框架用的tp6,发现这种链接用tp的数据库语法不怎么会写,因而写了原生sql准备查询,结果在model层引入的think\db不支持的,网友有说关联模型,对tp的关联模型还不太熟悉,后来找媳妇要了她写的tp的数据库写法blog

 

 

 改了后发现think\db不只不支持db::query(); name()table()这些也不行,赶忙建立b表的模型,改为self写法,问题获得处理table

 

 

 结果耗时没减小model