Mysql
 sql >> Database >  >> RDS >> Mysql

Rust:come si esegue un DML su MySQL con molti parametri?

Non sono un programmatore Rust, ma le considerazioni sulle prestazioni dovrebbero essere simili indipendentemente dal linguaggio dell'applicazione.

In questo caso, preparerei semplicemente una query per INSERT una riga, con i parametri per le colonne di quella riga. Quindi eseguire un ciclo per eseguire la query preparata con valori diversi per i parametri. Ciò esclude dal ciclo il sovraccarico dell'analisi dell'SQL, poiché viene eseguita solo una volta nella fase di preparazione. L'esecuzione della query preparata non riesamina l'istruzione.

Spero che questo sia esattamente ciò che il exec_batch() sta facendo. Ma potrebbe ri-preparare l'istruzione INSERT ogni volta nel ciclo. Sarebbe un approccio ingenuo, ma non so se il pacchetto Rust sia ingenuo o meno.

Se questo non è abbastanza performante, dovresti considerare di caricare grandi quantità di dati usando CARICA FILE DATI [LOCALE] . In genere è parecchie volte più veloce di qualsiasi istruzione INSERT anche con un set di 1000 tuple.

Potrebbe piacerti la mia presentazione Carica i dati velocemente! in cui ho confrontato le prestazioni relative di diverse soluzioni di importazione dati.