优化mysql查询连接表

时间:2016-01-05 11:33:17

标签: jquery mysql query-optimization loading minimization

请建议如何优化以下查询并尽量减少查询加载..

  

$ query =“选择     lot.arc_id,lot.arc_mod0_kod_daerah,lot.arc_mod0_kod_mukim,lot.arc_mod0_no_dhm,lot.arc_mod0_no_lot,lot.arc_mod0_jenis_lot,lot.arc_mod0_jenis_dhm,status.arc_mod0_status_pembayar,   status.arc_mod0_kod_taraf_pemilik,   user.arc_mod0_no_kp_baru,user.arc_mod0_no_kp_lama,user.arc_mod0_no_syarikat,user.arc_mod0_nama,   cukai.arc_mod0_cukai_tanah,   cukai.arc_mod0_cukai_taliair,cukai.arc_mod0_denda,cukai.arc_mod0_notis6a,cukai.arc_mod0_tunggakan_dari,cukai.arc_mod0_tunggakan_hingga,cukai.arc_mod0_tunggakan_cukai_tanah,cukai.arc_mod0_tunggakan_taliair,   cukai.arc_mod0_tunggakan_denda,cukai.arc_mod0_tunggakan_notis6a,   cukai.arc_mod0_hapusan,cukai.arc_mod0_remisyen,   cukai.arc_mod0_remisyen_dari,cukai.arc_mod0_remisyen_hingga,   来自frmmod0_lot_info的cukai.arc_mod0_status_bayar,   frmmod0_pihatpen status,frmmod0_pihak_be user,frmmod0_cukai_in cukai         其中lot.arc_id = status.arc_mod0_lot_id AND   status.arc_mod0_pihak_id = user.arc_id AND   cukai.arc_mod0_lot_id = lot.arc_id AND   user.arc_mod0_no_syarikat ='$ company_no'AND   status.arc_mod0_status_aktif ='1'AND lot.arc_mod0_lotstatus ='1'AND   (status.arc_mod0_kod_taraf_pemilik ='01'或   status.arc_mod0_kod_taraf_pemilik ='02'或   status.arc_mod0_kod_taraf_pemilik = '05'或
  status.arc_mod0_kod_taraf_pemilik ='06'或   status.arc_mod0_kod_taraf_pemilik ='10'或   status.arc_mod0_kod_taraf_pemilik ='12'或   status.arc_mod0_kod_taraf_pemilik ='13'或   status.arc_mod0_kod_taraf_pemilik = '14' )“;

2 个答案:

答案 0 :(得分:0)

尝试此查询

  select * from frmmod0_lot_info lot left join frmmod0_pihatpen status on lot.arc_id=status.arc_mod0_lot_id
  left join frmmod0_pihak_be user on status.arc_mod0_pihak_id=user.arc_id
  left join frmmod0_cukai_in cukai on cukai.arc_mod0_lot_id=lot.arc_id
  where 
  user.arc_mod0_no_syarikat='$company_no' AND 
  status.arc_mod0_status_aktif='1' AND 
  lot.arc_mod0_lotstatus = '1' AND 
  (status.arc_mod0_kod_taraf_pemilik in ('02','05','06','10','12','13','14',))

答案 1 :(得分:0)

您需要这些索引:

user:   INDEX(arc_mod0_no_syarikat)
status: INDEX(arc_mod0_status_aktif, arc_mod0_pihak_id, arc_mod0_kod_taraf_pemilik)
lot:    INDEX(arc_mod0_lotstatus, arc_id)

为你所拥有的东西做EXPLAIN SELECT ...;查看Rows列。添加这些索引后重复。 Rows列的产品可能会急剧减少。

More on creating optimal indexes