sql >> Database >  >> RDS >> Mysql

MySQL Lange Query Voortgangsbewaking

Ik weet dat dit een oude vraag is, maar ik was op zoek naar een soortgelijk antwoord toen ik probeerde te achterhalen hoe lang mijn update zou duren voor een zoekopdracht van 250 meter rijen.

Als je rent:

SHOW ENGINE INNODB STATUS \G

Zoek vervolgens onder TRANSACTIES de transactie in kwestie, bekijk deze sectie:

---TRANSACTION 34282360, ACTIVE 71195 sec starting index read
mysql tables in use 2, locked 2
1985355 lock struct(s), heap size 203333840, 255691088 row lock(s), undo log entries 21355084

Het belangrijkste is "logboekingen ongedaan maken". Voor elke bijgewerkte rij leek het in mijn geval een logboekitem voor ongedaan maken toe te voegen (probeer het na een paar seconden opnieuw uit te voeren en kijk hoeveel er zijn toegevoegd).

Als u naar het einde van het statusrapport gaat, ziet u dit:

Number of rows inserted 606188224, updated 251615579, deleted 1667, read 54873415652
0.00 inserts/s, 1595.44 updates/s, 0.00 deletes/s, 3190.88 reads/s

Hier kunnen we zien dat de snelheidsupdates die worden toegepast 1595,44 rijen per seconde zijn (hoewel als u andere updatequery's tegelijk uitvoert, deze snelheid mogelijk wordt gescheiden tussen uw query's).

Dus hieruit weet ik dat 21m is bijgewerkt met (250m-21m) nog 229m rijen te gaan.

229.000.000 / 1600 =143.125 seconden te gaan(143.125 / 60) / 60 =39,76 uur te gaan

Dus het lijkt erop dat ik nog een paar dagen met mijn duimen kan draaien. Tenzij dit antwoord fout is, in dat geval zal ik het ergens voor die tijd bijwerken!



  1. Optimaliseer de schrijfprestaties voor AWS Aurora-instantie

  2. MySQL-query ORDER OP bepaalde waarden vóór andere

  3. PHP float/decimale waarden invoegen in MySQL

  4. De beschikbaarheid van kamers beheren op basis van dagen of maanden bezetting