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

Python:Hvad er der galt med, at min kode for multiprocesser indsættes i MySQL?

Ja, hvis du masseindsætter 300 millioner rækker i den samme tabel, så skal du ikke prøve at parallelisere denne indsættelse. Alle indstik skal gennemgå de samme flaskehalse:opdatering af indekset og skrivning i den fysiske fil på harddisken. Disse operationer kræver eksklusiv adgang til de underliggende ressourcer (indekset eller diskhovedet).

Du tilføjer faktisk nogle ubrugelige overhead på databasen, som nu skal håndtere flere samtidige transaktioner. Dette forbruger hukommelse, tvinger kontekstskift, får diskens læsehoved til at hoppe rundt hele tiden og så videre.

Indsæt alt i samme tråd.

Det ser ud til, at du faktisk importerer data fra en slags CSV-fil. Du vil måske bruge den indbyggede LOAD DATA INFILE MySQL-kommando, designet til netop dette formål. Beskriv venligst din kildefil, hvis du har brug for hjælp til at indstille denne kommando.




  1. PostgreSQL:konverter hex-streng med et meget stort tal til et NUMERISK

  2. Hvordan TIMESTAMP() virker i MariaDB

  3. Forstå indekser i MySQL:Tredje del

  4. Hvordan opretter man forbindelse til databasen ved hjælp af QOCI eller QODBC med korrekt kodning?