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

Sådan indsætter du et meget stort antal poster i en MySql-database så hurtigt som muligt

Der er en række måder at optimere bulkskær på. Nogle er:

  • LOAD DATA INFILE . Der er en wrapper API til . NET . Dette er den hurtigste måde, men har nogle begrænsninger og semantiske forskelle fra simple indsættelser.

  • INSERT med flere rækker udsagn:

    INSERT INTO temperature (temperature) VALUES (1.0), (2.0), (3.0), ...

    Du bør ikke indsætte 20.000.000 rækker på én gang, men vil måske prøve 1.000-10.000 for en meget stor speed-up. Dette er en enkel og meget uproblematisk måde at øge hastigheden på. En faktor på 10 og nogle gange meget mere er ofte muligt.

  • Låsning af bordet (LOCK TABLES ).

  • Deaktiverer indekser midlertidigt.

  • Indstilling af MySQL-indstillinger.

  • INSERT DELAYED (sandsynligvis ikke så nyttigt her).

Dokumentationen giver dig flere detaljerede detaljer på mulighederne. Nogle muligheder afhænger af tabeltypen (InnoDB vs. MyISAM ).

Et generelt forslag:Angiv altid de kolonner, du indsætter foran VALUES . Dette giver en mere vedligeholdelsesvenlig kode.



  1. Laravel:Få en enkelt værdi fra en MySQL-forespørgsel

  2. Vælg første post, hvis ingen matcher

  3. Hvor er forskellene ved brug af XML og MySQL-database? Hvilken skal jeg bruge?

  4. hvordan man bruger tns-indgange med macromedia-drivere til Oracle