Thanks for your answer. Sorry for my slow reply, I got the flu.
> How much RAM is available to MySQL?
> What is innodb_buffer_pool_size?
pool size: 1024MB
the table I'm trying to copy has a DATA_LENGTH + INDEX_LENGTH = 376MB
the total ram on the server is 4GB, 2GB free ram when not running my query
> Does the Insert query induce swapping?
I'm not sure what is the best way to measure this. I ran:
sudo awk '/^Swap:/ { SWAP+=$2 } END { print SWAP" kB" }' /proc/$(pidof mysqld)/smaps
and it was 34MB before the query and about the same during the execution of the query.
> What is the result of running Explain Analyze on your Insert query?
Running
EXPLAIN INSERT INTO the_database.table_copy SELECT * FROM the_database.table_original;
Returns
1 SIMPLE table_original ALL NULL NULL NULL NULL 213476
> What does Show Engine InnoDB Status say when it runs whole your Insert query is running?
https://pastebin.com/0QtZuhcm
Does this tell you anything?