我在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
我正在
当我重写查询时需要(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
我正在
我无法理解这种情况。我原以为第二次查询需要更长的时间,因为它包含2个内连接。
任何人都可以分享有关此行为的观点。
感谢。