具有内部联接优化的SQL更新查询

时间:2015-02-05 05:12:09

标签: mysql sql sql-update inner-join

我有以下SQL更新查询。我正在研究MySQL

UPDATE stg_table AS stg
       INNER JOIN s_table AS s
               ON stg.s_name = s.s_name
                  AND stg.s_key = s.s_key
SET    update_ind = 1,
       stg.s_id = s.s_id,
       stg.m_id = s.m_id
WHERE  stg.processed_ind = 0 

这需要很长时间来处理,因此我在Java中获得锁定等待时间异常。

是否可以优化此查询,否则我将不得不增加MySQL端的锁定等待时间?

注意:目前我在stg_table表中有30k记录,在s_table表中有3k记录。

目前我的innodb_lock_wait_timeout = 50为默认值。如果我将innodb_lock_wait_timeout增加到一个更大的值,然后说200,那么我的问题可能会得到解决。但我不确定表中的数据是否增加,那么此查询可能会导致相同的情况。这是我的观点,如果我理解错误,请纠正我

1 个答案:

答案 0 :(得分:0)

我在stg.s_namestg.s_key上添加了索引,我的问题得到了解决。现在我的查询花了0.05秒。