我需要更新记录,例如
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) 上有复合索引。