mysql执行计划的顺序_MySQL执行计划顺序需要注意的地方

SQL执行计划顺序是:id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行。不过,对于标量子查询,

并非是id值越大,越先执行。如下面的执行计划顺序是:

r(1)->o(1)->ds(1)->(icd(3)+d(2))

EXPLAIN SELECT ds . OPERATING_UNIT_CODE AS OPERATING_UNIT_CODE,

ds.OPERATING_UNIT AS OPERATING_UNIT,        o.ORDER_END_TIME AS PAYMENT_TIME,        IFNULL(o.CHARGE_QUANTITY, 0) AS CHARGE_QUANTITY,        IFNULL(o.CHARGE_ELECTRICITY, 0) AS TOTAL_FEE,        (SELECT IFNULL(d . TIME_CHARGE, 0)           FROM gg_bm_o_order_charge_detail d          WHERE ((o.ID = d.ORDER_ID) AND (d.PRICE_TYPE = 6))) AS FEE,        IFNULL((SELECT SUM(icd . TOTAL_FEE)                 FROM gg_p_elec_detail_pay icd                WHERE ((icd.TRADE_NO = r . TRADE_NO) AND                      (icd.PAYMENT_TYPE = 2))),               0) AS retrieveFEE   FROM ((gg_p_elec_currency_pay r LEFT JOIN gg_bm_o_order o         ON((r.TRADE_NO = o.ORDER_CODE))) LEFT JOIN gg_om_dm_site ds         ON((o.SITE_CODE = ds.SITE_CODE)))  WHERE (r . PAYMENT_TYPE = 1);     id  select_type         table   type    possible_keys                    key                              key_len  ref                      rows  Extra         ------  ------------------  ------  ------  -------------------------------  -------------------------------  -------  ---------------------  ------  -------------      1  PRIMARY             r       ALL     (NULL)                           (NULL)                           (NULL)   (NULL)             68926  Using where        1  PRIMARY             o       ref     IDX_ORDER_CODE                   IDX_ORDER_CODE                   99       r.TRADE_NO             1  Using where        1  PRIMARY             ds      ref     IDX_SITE_CODE                    IDX_SITE_CODE                    99       o.SITE_CODE            1  Using where        3  DEPENDENT SUBQUERY  icd     ref     ind_ipedp_TRADE_NO_PAYMENT_TYPE  ind_ipedp_TRADE_NO_PAYMENT_TYPE  101      r.TRADE_NO,const       1                     2  DEPENDENT SUBQUERY  d       ref     FK_ORDER_DETAIL_ORDER_ID         FK_ORDER_DETAIL_ORDER_ID         99       o.ID                   2  Using where

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值