记录一次sql连表优化

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

记录一次sql连表优化

 

 

 记录一次sql连表优化

 

 

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

记录一次sql连表优化

 

 

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

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

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

记录一次sql连表优化

 

 

 改了后发现think\db不仅不支持db::query(); name()table()这些也不行,赶紧创建b表的模型,改成self写法,问题得到处理

记录一次sql连表优化

 

 

 结果耗时没减少

记录一次sql连表优化

 

记录一次sql连表优化

上一篇:达梦sql优化之执行计划


下一篇:Linux-5.13将初步支持苹果M1 Soc