我正在尝试更新多个使用名为" Team"的列的表。我创建了一个更新语句,但是非常慢并且需要很长时间。我可以获得一些优化和运行更快的技巧吗?
update QB, RB, WR, passing, rushing, receiving
set qb.team='GB',
rb.team='GB',
wr.team='GB',
passing.team='GB',
rushing.team='GB',
receiving.team='GB'
where qb.team=('GNB') or
(rb.team='GNB') or
(wr.team='GNB') or
(passing.team='GNB') or
(rushing.team='GNB') or
(receiving.team='GNB');
答案 0 :(得分:0)
你在所有六张桌子上进行了大量的交叉连接。这意味着WHERE
子句中的条件正在扫描大量连接的行。具体来说,您要扫描所有六个表中行数的乘积。
相反,您应该像这样编写查询。
更新QB 加入RB ON QB.something = RB.something 加入WR ON QB.something = WR.something ...等 SET QB.team =' GB',RB.team =' GB' ......等 什么东西