Codeigniter batch insert performance Codeigniter batch insert performance codeigniter codeigniter

Codeigniter batch insert performance


From the documentation of code igniter insert_batch do this kind of things

$data = array(   array(      'title' => 'My title' ,      'name' => 'My Name' ,      'date' => 'My date'   ),   array(      'title' => 'Another title' ,      'name' => 'Another Name' ,      'date' => 'Another date'   ));$this->db->insert_batch('mytable', $data); // Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')

So it would produce only one query with all the values, normally this way faster then doing separate inserts.


To answer your question: It uses one connection.


Actually @RageZ answer based on document is not always correct. Because it's totally based on the number of items you want to insert. When looking at codeigniter insert_batch() code, you can see that they slice batch inserts into 100 items.

// Batch this baby (Around line number 1077 in codeigniter 2.x)for ($i = 0, $total = count($this->ar_set); $i < $total; $i = $i + 100){    $sql = $this->_insert_batch($this->_protect_identifiers($table, TRUE, NULL, FALSE), $this->ar_keys, array_slice($this->ar_set, $i, 100));    //echo $sql;    $this->query($sql);}

It means that your values will be slice to 100s inserts and if you uncomment the echo $sql part you can see what it's look like when you use insert batch for 101 items. So based on your connection preferences there can be more than one connection needed for inserting in db.