-
INSERT temps execution
Bonjour,
Je me pose la question si on peut ameliorer le temps d'execution d'une simple requete d'insertion.
INSERT INTO table(x,y,z) VALUES(10,15,2);
J'ai execute la requete dans MySQL directement et ca me donne en moyenne 40 ms pour inserer un nouvel enregistrement dans la table.
Peut-on ameliorer ce temps d'execution parce qu'il ne serait pas rare que je doive inserer plusieurs milliers d'enregistrements.
Merci
Christian
-
Ben un INSERT est un INSERT je voit pas comment on pourrai reduire le temps...
-
Insert
Dommage que MySQL ne soit pas aussi performante a l'insertion de nouveaux enregistrements. Le temps d'execution des requetes Select semble tres satisfaisant.
Je me trouve alors dans une impasse a present :-(
Merci
Christian
-
Mais je comprend pas, pourquoi a tu a faire des milliers d'INSERT?
Si tu nous explique un peu on pourra peut etre voir a trouve une solution...
-
J'ai une application ecrit en C# qui communique avec un serveur SQL. Une des tables de la base de donnees contient un champs commentaires (chaine de caracteres). Je n'entrerai pas dans les details, mais je peux resumer le systeme... La table contient des enregistrements de comptes usagers et je peux en avoir plusieurs milliers d'usagers. Une des fonctions particulieres de l'application permet d'enregistrer des commentaires specifiques a un usager. Mais je peux enregistrer le meme commentaire a plusieurs usagers en envoyant plusieurs requetes INSERT.
Par exemple, si je selectionne 1500 usagers et je veux enregistrer le commentaire "Allo" a tout ces usagers, alors j'envoie un par un la requete INSERT aux usagers specifiés.
Voila, j'espere que vous comprenez ce que j'essaie de faire.
Merci
Christian
-
Bonjour,
INSERT INTO table(x,y,z) VALUES(10,15,2), (20,21,22), (30,31,32), ... (Xi,Xj,Xk) est déjà plus rapide
Autre solution : Passer par les méthodes addBatch et executeBatch
1) addBatch permet d'ajouter les INSERTS à 1 Statement
(instanciè par createStatement appliqué sur 1 connexion)
2) executeBatch lance ces inserts en 1 seule passe (par conséquent c'est + rapide)
ça fonctionne en jdbc, on doit trouver l'équivalent en C#
Cdlt
Selecta