批次更新時加速 Mysql 查詢
P粉470645222
P粉470645222 2024-03-27 11:41:12
0
1
449

我需要更新記錄,例如

update table abc set marks='15' 
where rollno='432423' and pcode='ABC234';

近 10,000 個查詢。

我的表有 1,00,000 筆記錄。 我需要更新 10,000 筆記錄。需要幾個小時 我怎樣才能加快速度。我正在使用 INNODB

任何加快速度的方法。

P粉470645222
P粉470645222

全部回覆(1)
P粉865900994

最有效的方法是將記錄插入到另一個表中並使用它進行更新,例如:

create table def like abc;
# optionally drop unneeded columns: alter table def drop foo, drop bar;
insert into def (marks, rollno, pcode) values
    ('15','432423','ABC234'),
    ('16','432424','DEF567'),
    ...
    ;
update def join abc using (rollno,pcode)
    set abc.marks=def.marks;
drop table def;

如果更新本身仍然很慢,請確保 abc 在 (rollno, pcode) 上有複合索引。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板