Is it possible to bulk-insert data into a table using Magento?
I am working on extending the Magento import/export feature for a custom module, and noticed that each row is added one-at-a-time in a while loop. For a CSV containing thousands of rows of data, this could take a VERY long time to insert. Instead, is there a bulk-insert function laying around that takes an array of record data and bulk-inserts them?
Crude example (in reality the row data would be added to the
$data array in the while loop):
$data = array( array('column1' => 'value', 'column2' => 'value', ...), array('column1' => 'value', 'column2' => 'value', ...), ... ); Mage::getModel('module/model')->insert($data,true);
Where the second parameter in
insert indicates a bulk-insert operation?
If not, why not? I am aware some PDOs don't have the functionality to do bulk-insert, in which case Magento would default to doing a
foreach anyway. However, for PDOs that DO support bulk-insert (such as MySql) it would save a lot of time compared to touching the db for every insert. If this is not already in Magento, how would I go about implementing it? Can I have a link to the Magento feature suggestion page (Google suggests Magento Forum but I would like a second opinion before posting there).