Mysql
 sql >> Base de données >  >> RDS >> Mysql

Rust :Comment exécuter un DML sur MySQL avec de nombreux paramètres ?

Je ne suis pas un programmeur Rust, mais les considérations de performances devraient être similaires quel que soit le langage de l'application.

Dans ce cas, je préparerais simplement une requête pour INSÉRER une ligne, avec des paramètres pour les colonnes de cette ligne. Exécutez ensuite une boucle pour exécuter la requête préparée avec différentes valeurs pour les paramètres. Cela exclut de la boucle la surcharge d'analyse du SQL, car cela n'est fait qu'une seule fois à l'étape de préparation. L'exécution de cette requête préparée ne réanalyse pas l'instruction.

J'espère que c'est exactement ce que le exec_batch() fait. Mais il peut s'agir de re-préparer l'instruction INSERT à chaque fois dans la boucle. Ce serait une approche naïve, mais je ne sais pas si le paquet Rust est naïf ou non.

Si cela n'est pas assez performant, vous devriez envisager de charger de grandes quantités de données en utilisant CHARGER DONNÉES [LOCAL] INFILE . C'est généralement plusieurs fois plus rapide que n'importe quelle instruction INSERT, même avec un ensemble de 1000 tuples.

Vous aimerez peut-être ma présentation Charger les données rapidement ! dans lequel j'ai comparé les performances relatives de différentes solutions d'importation de données.