醉君惜红颜 2017-07-07 03:41 采纳率: 0%
浏览 712

mysql的这个sql怎么优化

这个只是报表统计中的一个sql,运行时间有8秒之多

 SELECT DISTINCT GDLS.GDLS_GONGDAN_RWGDID_FK      GDID,
                GDLS.GDLS_CAOZUODANWEI_DEMEID_FK HECHAQIYE,
                GDLS.GDLS_CAOZUODANWEI_DEMEID_FN HECHAQIYEFN
  FROM CIVE_T_D_RENWUGONGDAN RWGD
  JOIN cive_t_d_gongdanlishi GDLS
    ON (RWGD.RWGD_ID = GDLS.GDLS_GONGDAN_RWGDID_FK)
 WHERE RWGD.RWGD_GONGDANZHUANGTAI <> '01'
   AND GDLS.GDLS_ISDELETED = 0
   AND GDLS.GDLS_ISDISABLED = 0
   AND RWGD.RWGD_ISDELETED = 0
   AND RWGD.RWGD_ISDISABLED = 0
   AND RWGD_GONGDANZHUANGTAI <> '05'
   AND GDLS.GDLS_CHULIHOUZHUANGTAI <> '08'
   AND GDLS.GDLS_CHULIHOUZHUANGTAI <> '17'
   AND GDLS.GDLS_CHULIHOUZHUANGTAI <> '09'
   AND GDLS_CREATETIME >= '2017-06-07 00:00:00'
   AND GDLS_CREATETIME <= '2017-07-07 23:59:59'

以下是数量分布:

 #77038
SELECT COUNT(1) FROM CIVE_T_D_RENWUGONGDAN;
#184647
SELECT COUNT(1) FROM cive_t_d_gongdanlishi;
#31922
SELECT COUNT(1) 
  FROM cive_t_d_gongdanlishi GDLS
 WHERE GDLS.GDLS_ISDELETED = 0
   AND GDLS.GDLS_ISDISABLED = 0
   AND GDLS.GDLS_CHULIHOUZHUANGTAI <> '08'
   AND GDLS.GDLS_CHULIHOUZHUANGTAI <> '17'
   AND GDLS.GDLS_CHULIHOUZHUANGTAI <> '09'
   AND GDLS_CREATETIME >= '2017-06-07 00:00:00'
   AND GDLS_CREATETIME <= '2017-07-07 23:59:59';
#70669
SELECT COUNT(1)
  FROM CIVE_T_D_RENWUGONGDAN RWGD
 WHERE RWGD.RWGD_GONGDANZHUANGTAI <> '01'
   AND RWGD.RWGD_ISDELETED = 0
   AND RWGD.RWGD_ISDISABLED = 0
   AND RWGD_GONGDANZHUANGTAI <> '05';

这个是执行计划:

 EXPLAIN SELECT DISTINCT GDLS.GDLS_GONGDAN_RWGDID_FK      GDID,
                GDLS.GDLS_CAOZUODANWEI_DEMEID_FK HECHAQIYE,
                GDLS.GDLS_CAOZUODANWEI_DEMEID_FN HECHAQIYEFN
  FROM CIVE_T_D_RENWUGONGDAN RWGD
  JOIN cive_t_d_gongdanlishi GDLS
    ON (RWGD.RWGD_ID = GDLS.GDLS_GONGDAN_RWGDID_FK)
 WHERE RWGD.RWGD_GONGDANZHUANGTAI <> '01'
   AND GDLS.GDLS_ISDELETED = 0
   AND GDLS.GDLS_ISDISABLED = 0
   AND RWGD.RWGD_ISDELETED = 0
   AND RWGD.RWGD_ISDISABLED = 0
   AND RWGD_GONGDANZHUANGTAI <> '05'
   AND GDLS.GDLS_CHULIHOUZHUANGTAI <> '08'
   AND GDLS.GDLS_CHULIHOUZHUANGTAI <> '17'
   AND GDLS.GDLS_CHULIHOUZHUANGTAI <> '09'
   AND GDLS_CREATETIME >= '2017-06-07 00:00:00'
   AND GDLS_CREATETIME <= '2017-07-07 23:59:59';

图片说明

  • 写回答

4条回答

  • ljheee 2017-07-07 06:00
    关注

    WHERE 子句 ,条件判断 太多了啊

    评论

报告相同问题?

悬赏问题

  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch