sql >> Databasteknik >  >> RDS >> Mysql

Optimera MySQL-inlägg för att hantera en dataström

Om din data inte behöver gå in i databasen omedelbart kan du cachelagra din infogningsdata någonstans, sedan utfärda en större infogningssats, t.ex.

infoga i tabellnamn (x, y, z) värden (x1, y1, z1), (x2, y2, z2), ... (xN, yN, zN) vid dubblettuppdatering ...;

För att vara tydlig skulle jag behålla en lista över väntande bilagor. I detta fall en lista med (x,z,y) tripletter. Sedan när din lista överskrider ett tröskelvärde (N) genererar du infogningssatsen och utfärdar den.

Jag har inga exakta tidssiffror för dig, men detta ökade prestandan ungefär 10 gånger jämfört med att infoga varje rad individuellt.

Jag har inte heller spelat med värdet på N, men jag tyckte att 1000 fungerade bra. Jag förväntar mig att det optimala värdet påverkas av hårdvaru- och databasinställningar.

Hoppas detta hjälper (jag använder också MyIsam).



  1. Oracle FEL:ORA-00900:ogiltig SQL-sats

  2. Problem med MySQL-fråga med AVG()

  3. SQL hur man jämför två kolumner från två olika tabeller

  4. Övervakning av Percona-distribution för PostgreSQL - nyckelmått