簡體   English   中英

具有內部聯接優化的SQL更新查詢

[英]SQL update query with inner join optimisation

我下面有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,那么我的問題可能會得到解決。 但是我不確定表中的數據是否增加,然后此查詢可能導致相同的情況。 這是我的觀點,如果我的理解有誤,請糾正我

我在stg.s_namestg.s_key添加了索引,問題stg.s_key解決。 現在我的查詢需要0.05秒。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM