Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Rust:Jak uruchomić DML na MySQL z dużą ilością parametrów?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najlepszy sposób, aby uzyskać całkowitą liczbę rekordów w tabeli mysql za pomocą php?

  2. Błąd składni SQL w pobliżu opisu

  3. iptables:powielanie/przekazywanie portów

  4. Tabela przestawna MySQL przy użyciu java

  5. Jak prawidłowo unikać warunków wyścigu Mysql?