昨天下午運維有說一個查詢四秒多,看了下代碼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