我需要更新記錄,例如
update table abc set marks='15' where rollno='432423' and pcode='ABC234';
近 10,000 個查詢。
我的表有 1,00,000 筆記錄。 我需要更新 10,000 筆記錄。需要幾個小時 我怎樣才能加快速度。我正在使用 INNODB
任何加快速度的方法。
P粉8659009942024-03-28 10:54:25
最有效的方法是將記錄插入到另一個表中並使用它進行更新,例如:
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) 上有複合索引。