Beschleunigen Sie MySQL-Abfragen bei Batch-Updates
P粉470645222
P粉470645222 2024-03-27 11:41:12
0
1
413

Ich muss einen Datensatz wie

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

Fast 10.000 Anfragen.

Meine Tabelle enthält 1.00.000 Datensätze. Ich muss 10.000 Datensätze aktualisieren. Es dauert mehrere Stunden Wie kann ich es beschleunigen? Ich verwende INNODB

Irgendwelche Möglichkeiten, die Dinge zu beschleunigen.

P粉470645222
P粉470645222

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage