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

Optimering af MySQL-indsæt til at håndtere en datastrøm

Hvis dine data ikke skal ind i databasen med det samme, kan du cache dine indsættelsesdata et sted, og derefter udsende en større indsætningserklæring, f.eks.

indsæt i tabelnavn (x, y, z) værdier (x1, y1, z1), (x2, y2, z2), ... (xN, yN, zN) ved duplikatopdatering ...;

For at være klar vil jeg vedligeholde en liste over afventende indsættelser. I dette tilfælde en liste over (x,z,y) tripletter. Så når din liste overstiger en tærskel (N), genererer du indsæt-sætningen og udsteder den.

Jeg har ingen nøjagtige timingtal for dig, men dette øgede ydeevnen omkring 10 gange sammenlignet med at indsætte hver række individuelt.

Jeg har heller ikke leget med værdien af ​​N, men jeg fandt, at 1000 fungerede fint. Jeg forventer, at den optimale værdi påvirkes af hardware- og databaseindstillinger.

Håber dette hjælper (jeg bruger også MyIsam).



  1. Indsæt NULL-værdi i INT-kolonnen

  2. Indstillinger for forbindelsestimeout for Oracle-database

  3. Doktrin genererer ikke begrænsninger for fremmednøgle på tværs af databaser i MySQL

  4. manipulere DataGridView