Accélérez les requêtes Mysql lors des mises à jour par lots
P粉470645222
P粉470645222 2024-03-27 11:41:12
0
1
442

Je dois mettre à jour un enregistrement comme

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

Près de 10 000 requêtes.

Ma table contient 1 00 000 enregistrements. Je dois mettre à jour 10 000 enregistrements. Cela prend plusieurs heures Comment puis-je l'accélérer. J'utilise INNODB

Tout moyen d’accélérer les choses.

P粉470645222
P粉470645222

répondre à tous(1)
P粉865900994

Le moyen le plus efficace est d'insérer l'enregistrement dans une autre table et de le mettre à jour en l'utilisant, par exemple :

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;

Si la mise à jour elle-même est toujours lente, assurez-vous qu'abc dispose d'un index composite (rollno, pcode).

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal