Я знаю, что это старый вопрос, но я искал аналогичный ответ, пытаясь выяснить, сколько времени займет мое обновление для запроса на 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м было обновлено с (250м-21м) 229м оставшихся строк.
229 000 000/1600 = 143 125 секунд до конца (143 125)/ 60) / 60 = 39,76 часа вперед
Так что, похоже, я могу крутить пальцы еще пару дней.Если этот ответ неправильный, в этом случае я обновлю его как-то раньше!