内部联接的SQL更新查询

时间:2015-02-06 09:56:48

标签: mysql sql sql-update inner-join

我在STG_S_CUST表MySQL

中尝试了400条记录

我有以下查询,需要很长时间(0.1500s)

UPDATE STG_S_CUST AS stg
       INNER JOIN S_CUST AS s
               ON stg.SRC_NM = s.SRC_NM
                  AND stg.SRC_KEY = s.SRC_KEY
SET    UPDATE_IND = 0,
       stg.S_ID = s.S_ID,
       stg.M_ID = s.M_ID
WHERE  stg.PROCESSED_IND = 1 

在查询中使用EXPLAIN我正在

enter image description here

当我重写查询时需要(0.0318s)

UPDATE STG_S_CUST AS stg
       INNER JOIN (SELECT stg.stg_id AS stage_id,
                          s.s_id   AS s_id,
                          s.m_id   AS m_id
                   FROM   STG_S_CUST AS stg
                          INNER JOIN S_CUST AS s
                                  ON stg.src_nm = s.src_nm
                                     AND stg.src_key = s.src_key
                   WHERE  stg.processed_ind = 1) innerQ
               ON stg.stg_id = innerQ.stage_id
SET    stg.update_ind = 0,
       stg.s_id = innerQ.s_id,
       stg.m_id = innerQ.m_id

在查询中使用EXPLAIN我正在

enter image description here

我无法理解这种情况。我原以为第二次查询需要更长的时间,因为它包含2个内连接。

任何人都可以分享有关此行为的观点。

感谢。

0 个答案:

没有答案