left join on后跟 or 多條件,sql要好幾秒。
代碼
SELECT gar.*,sgr.is_prepay,gsr.is_prepay as gsr_is_prepay,sgr.goods_pre_id as sgr_goods_pre_id,gsr.goods_pre_id as gsr_goods_pre_id,gs.id as goods_id,gs.goods_name,gs.img,mer.username,gs.module_id,mer.merchant_id,mer.short_name as merchant_short_name,mer.phone as merchant_phone FROM `gift_all_record` gar
LEFT JOIN `send_gift_record` sgr ON gar.send_gift_record_id=sgr.id
LEFT JOIN `gift_share_record` gsr ON gar.gift_share_record_id=gsr.id
LEFT JOIN `goods_gift_code` ggc ON gar.goods_gift_code_id=ggc.id
LEFT JOIN `merchant` mer ON gar.merchant_id=mer.merchant_id
LEFT JOIN `goods` gs ON sgr.goods_id=gs.id OR gsr.goods_id=gs.id OR ggc.goods_id=gs.id
WHERE 1 GROUP BY gar.id ORDER BY gar.create_time desc limit 0,10

用union又有重復資料,怎么優化好。
uj5u.com熱心網友回復:
請問goods表的資料量? id列上是否有索引?uj5u.com熱心網友回復:
我只知道測驗開發的庫goods資料量不大,線上就不知道了,id有建索引,leftjoin on 后不用or的話很快uj5u.com熱心網友回復:
能否把send_gift_record,gift_share_record,goods_gift_code 三張表 union 到一起去連接, 這樣就不要用 OR 了uj5u.com熱心網友回復:
目前就是這樣處理的,效率高了不少
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/79065.html
標籤:疑難問題
