insert select je ogromna transakcija, kod myisam-a te bas briga ali sa innodb-om to je jedna veeeelika transakcija i naravno da je problem... tebi masina odavno swapuje po meni tako da se sve extra usporilo i velike su sanse (ako je tabela toliko velika) da ce na kraju mysql samo da prsne, tj da ce kernel da ga ubije zato sto trosi previse resursa
imas 4 resenja
1. napravis skript koji ce da radi 10000 po 10000 rekorda: insert select order by .. limit offset,10000 (ne zaboravi order by, jedino tako ti limit ima smisla!!)
2. uradis select into outfile iz myisam, pa load infile u innodb
3. ugasis mysql, fizicki iskopiras FRM, MYI i MYD fajlove iz baze1 u bazu2 (budi siguran da fajlovi imaju ok permissione kada ih iskopiras), startujes mysql, uradis alter table baza2.tabela engine=innodb
3a. ako ti ne treba original tabela, napravis bekap iste i onda uradis alter table engine=innodb i tu tabelu direkt prebacis u innodb bez ikakvog kopiranja
4. uradis dump bez create iz myisam-a pa izvrsis taj dump nad novom bazom
Ja licno najvise volim prvo resenje (nije najbolje niti najbrze) zato sto sa njim mogu da imam progress report :), stavim po 1k ili 10k slogova i ispisem neki progress bar kako se izvrsavaju upiti i znam dokle sam stigao ... sve ostale varijante pustis i onda cekas a nemas pojma el se nesto uopste desava ili ne