Nie jestem programistą Rust, ale względy wydajności powinny być podobne, niezależnie od języka aplikacji.
W tym przypadku po prostu przygotowałbym zapytanie do WSTAWIANIA jednego wiersza, z parametrami dla kolumn tego jednego wiersza. Następnie uruchom pętlę, aby wykonać przygotowane zapytanie z różnymi wartościami parametrów. To eliminuje z pętli obciążenie związane z analizowaniem SQL, ponieważ jest to robione tylko raz na etapie przygotowania. Wykonanie tak przygotowanego zapytania nie powoduje ponownej analizy instrukcji.
Mam nadzieję, że jest to dokładnie to, co exec_batch()
to robi. Ale może to być ponowne przygotowanie instrukcji INSERT za każdym razem w pętli. To byłoby naiwne podejście, ale nie wiem, czy pakiet Rust jest naiwny, czy nie.
Jeśli to nie jest wystarczająco wydajne, należy rozważyć załadowanie masowych ilości danych przy użyciu WCZYTAJ DANE [LOKALNE] INFILE . Zwykle jest to kilka razy szybsze niż jakiekolwiek polecenie INSERT, nawet w przypadku zestawu 1000 krotek.
Może spodoba Ci się moja prezentacja Szybko ładuj dane! w którym porównałem względną wydajność różnych rozwiązań do importowania danych.