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

MySQL Long Query Progress Monitoring

Jeg ved, at dette er et gammelt spørgsmål, men jeg ledte efter et lignende svar, da jeg prøvede at finde ud af, hvor meget længere tid min opdatering ville tage på en forespørgsel på 250 m rækker.

Hvis du kører:

SHOW ENGINE INNODB STATUS \G

Find derefter den pågældende transaktion under TRANSAKTIONER, undersøg dette afsnit:

---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

Den vigtige bit er "fortryd logindtastninger". For hver opdateret række så det i mit tilfælde ud til at tilføje en fortryd-logpost (forsøger at køre den igen efter et par sekunder og se, hvor mange der er blevet tilføjet).

Hvis du springer til slutningen af ​​statusrapporten, vil du se dette:

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

Her kan vi se, at hastighedsopdateringerne, der anvendes, er 1595,44 rækker pr. sekund (selvom hvis du kører andre opdateringsforespørgsler i tandem, så kan denne hastighed være adskilt mellem dine forespørgsler).

Så ud fra dette ved jeg, at 21 m er blevet opdateret med (250 m-21 m) 229 m rækker tilbage.

229.000.000 / 1600 =143.125 sekunder tilbage (143.125 / 60) / 60 =39,76 timer tilbage

Så det ser ud til, at jeg kan vride med tommelfingrene i endnu et par dage. Medmindre dette svar er forkert, i så fald vil jeg opdatere det engang inden da!



  1. SQL:Hvordan man udfører streng er ikke ens

  2. PostgreSQL brugergruppe NL

  3. PHP strtotime():dato, der viser '1970-01-01 ' efter konvertering

  4. Opdater formular ved hjælp af Ajax, PHP, MYSQL