sql >> Databasteknik >  >> RDS >> Mysql

Rust:Hur kör vi en DML på MySQL med många parametrar?

Jag är ingen Rust-programmerare, men prestandaövervägandena bör vara liknande oavsett applikationsspråk.

I det här fallet skulle jag bara förbereda en fråga för att INFOGA en rad, med parametrar för kolumnerna i den raden. Kör sedan en loop för att exekvera den förberedda frågan med olika värden för parametrarna. Detta tar bort kostnaderna för att analysera SQL, eftersom det bara görs en gång i förberedelsesteget. Att köra den förberedda frågan analyserar inte uttalandet igen.

Jag hoppas att detta är exakt vad exec_batch() gör. Men det kan vara att förbereda INSERT-satsen på nytt varje gång i slingan. Det skulle vara ett naivt tillvägagångssätt, men jag vet inte om Rust-paketet är naivt eller inte.

Om detta inte fungerar tillräckligt, bör du överväga att ladda bulkmängder av data med LADDA DATA [LOKAL] INFIL . Det är vanligtvis flera gånger snabbare än någon INSERT-sats även med en uppsättning av 1000 tupler.

Du kanske gillar min presentation Ladda data snabbt! där jag jämförde den relativa prestandan för olika dataimportlösningar.



  1. Lista över datumformat som är tillgängliga med CONVERT() i SQL Server

  2. Bästa sättet för inkrementell belastning i ssis

  3. Oracle JDBC batchUpdate-rader som påverkas är alltid -2 (Statement.SUCCESS_NO_INFO)

  4. SNMP OUTPUT OPTIONS - Hur får jag bara OID-svarsvärdet?