更新多个表mysql优化

时间:2015-01-22 20:42:34

标签: mysql sql optimization sql-update

我正在尝试更新多个使用名为" 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');

1 个答案:

答案 0 :(得分:0)

你在所有六张桌子上进行了大量的交叉连接。这意味着WHERE子句中的条件正在扫描大量连接的行。具体来说,您要扫描所有六个表中行数的乘积。

相反,您应该像这样编写查询。

更新QB      加入RB ON QB.something = RB.something      加入WR ON QB.something = WR.something ...等       SET QB.team =' GB',RB.team =' GB' ......等     什么东西