Consulte tambémhttp://www.mysqlperformanceblog.com/2006/07/12/insert-into-select-performance-with-innodb-tables/
se não estiver usando replicação, pode alterar innodb_locks_unsafe_for_binlog para alterar esse comportamento de bloqueio.
Ou pode despejar os dados em um arquivo e recarregar os dados de um arquivo. Isso também evita os bloqueios.