Inserção em lote de dados para banco de dados MySQL usando php

Eu tenho milhares de dados analisados ​​a partir de grandes XML para serem inseridos na tabela de banco de dados usando PHP e MySQL. Meu problema é que demora muito para inserir todos os dados na tabela. Existe uma maneira que meus dados são divididos em grupos menores para que o processo de inserção seja por grupo? Como pode configurar um script que processará os dados por 100, por exemplo? Aqui está meu código:

foreach($itemList as $key => $item){
     $download_records  = new DownloadRecords();
    //check first if the content exists
    if(!$download_records->selectRecordsFromCondition("WHERE Guid=".$guid."")){
         /* do an insert here */
    } else {
         /*do an update */
    }

}

* nota: $ itemList é de cerca de 62.000 e continua crescendo.