Possible to estimate completion status/percentage with following information in MySQL?
I am doing a large update and I was checking to see if there was some way I can evaluate how far along it is rather than just looking at the spinner.
The insert statement looks something like this:
INSERT IGNORE INTO table_to SELECT * FROM table_from
table_tohas about 2.8B rows.
table_fromhas about 157M rows.
In other words, I'm inserting 157M rows into a table that already has 2.8B rows.
The status when doing
select * from information_schema.processlist where db='history' just says
Sending data. When doing
show engine innodb status; I get the following information:
2651250 lock struct(s), heap size 418554064, 166033510 row lock(s), undo log entries 35625719 MySQL thread id 5271106, OS thread handle 47283734066944, query id 906968734 10.194.1.122 avails Sending data
It does say 166M rows locked -- does it have to lock every single row (2.8B) in order to do the insert? In other words, it's less than 10% done? Or is that a wrong reading of it? And is there any way to evaluate 'how far along the query is' ?