批量更新时加速 Mysql 查询
P粉470645222
P粉470645222 2024-03-27 11:41:12
0
1
370

我需要更新记录,例如

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) 上有复合索引。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!