Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Мониторинг на напредъка на дълги заявки

Знам, че това е стар въпрос, но търсех подобен отговор, когато се опитвах да разбера колко време ще отнеме актуализацията ми при заявка от 250 милиона реда.

Ако стартирате:

SHOW ENGINE INNODB STATUS \G

След това под ТРАНЗАКЦИИ намерете въпросната транзакция, разгледайте този раздел:

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

Важният бит е "отмяна на записите в дневника". За всеки актуализиран ред в моя случай изглежда добавяше запис в дневника за отмяна (опитвайки се да го стартирате отново след няколко секунди и да видите колко са добавени).

Ако преминете към края на отчета за състоянието, ще видите това:

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

Тук можем да видим, че скоростта, която се прилагат, е 1595,44 реда в секунда (въпреки че ако изпълнявате други заявки за актуализиране в тандем, тогава тази скорост може да бъде разделена между вашите заявки).

Така че от това знам, че 21 m са били актуализирани с (250 m-21 m) оставащи 229 m редове.

229 000 000 / 1600 =143 125 секунди (143 125 / 60) / 60 =39,76 часа остават

Така изглежда, че мога да въртя палци още няколко дни. Освен ако този отговор не е грешен, в този случай ще го актуализирам преди това!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да прехвърля шестнадесетичния към varchar (datetime)?

  2. Преместване на възел в дървото на вложените набори

  3. Най-голяма стойност от две или повече полета

  4. Групирайте mysql резултатите по категория и ги покажете в групи във всяка категория

  5. Грешка:Времето за изчакване на неактивност при ръкостискане в модула Node.js MYSQL