Hap*_*der 7 mysql sql performance limit sql-update
我需要更新一个表,除了它的前1000个记录.我的查询是这样的:
UPDATE tableA
SET price = 100
WHERE price = 200 AND
item_id =12 AND
status NOT IN (1,2,3);
Run Code Online (Sandbox Code Playgroud)
我知道子查询approcah将在这里工作,但我有一个巨大的表,其中200000条记录满足WHERE条件,并且它正在增长.所以我认为如果我遵循子查询方法,它将不会随着DB的增长而扩展.
此外,我已经看到LIMIT在UPDATE查询中指定,但它达到了一定的限制.在我的情况下,它是在一定的偏移后,应更新所有记录.
还可以找到总计数并使用LIMIT指定它.但是COUNT()查询失败了.
我不确定这是否是一个正确的解决方案,但如果您ID的表中有一个唯一的列;举例来说ID,那么您可以很容易地放置谓词说WHERE ID > 1000。它将仅考虑从第 1001 个位置开始的行,例如
UPDATE tableA SET price = 100
WHERE price = 200
AND item_id = 12
AND ID > 1000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1090 次 |
| 最近记录: |