首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Update查询执行超过75分钟

Update查询执行超过75分钟
EN

Stack Overflow用户
提问于 2019-05-22 03:01:19
回答 1查看 28关注 0票数 -2

我有两张桌子TABLE_ATABLE_B。如果TABLE_A名称不存在,我想更新TABLE_B状态字段。当我执行下面的查询时,它花费了超过75分钟。我对Table_Bb_idm_idstatus建立了索引。我不确定如何在秒内执行此操作。我在更新索引列的时候做错了什么吗?Table_B的统计数据显示在附图中。

代码语言:javascript
复制
UPDATE TABLE_B 
SET    status = 3 
WHERE  ( status = 1 
          OR status IS NULL ) 
       AND b_id = 39 
       AND m_id = 2 
       AND NAME NOT IN (SELECT NAME 
                        FROM   TABLE_A 
                        WHERE  b_id = 39 
                               AND m_id = 2) 

EN

回答 1

Stack Overflow用户

发布于 2019-05-22 03:17:01

您可以尝试使用left join where不匹配而不是NOT IN

但是要确保你有合适的综合索引

代码语言:javascript
复制
  TABLE_A  columns  ( NAME,b_id, m_id)
  TABLE_B columns (NAME, b_id, m_id, status)

UPDATE TABLE_B 
LEFT JOIN TABLE_A ON TABLE_B.NAME = TABLE_A.NAME AND TABLE_A.b_id = 39  and TABLE_A.m_id
SET    status = 3 
WHERE  ( status = 1  OR status IS NULL ) 
AND TABLE_B.b_id = 39 
AND TABLE_B.m_id = 2 
AND TABLE_A.NAME IS NULL 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56244859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档