请我开明,这是更快/更好的方法或CI batch insert和循环插入之间的相同。
$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'); */
循环插入(php):
for( $i = 0; $ < count($data); $i++ )
{
INSERT INTO mytable (title, name, date)
VALUES ($data[$i]['title'], $data[$i]['name'], $data[$i]['date'])
}
谢谢!
答案 0 :(得分:3)
批量插入通常更快,因为它们一次处理数据,因为INSERT有一些开销(例如,SQL优化器无法扣除某些步骤)。也就是说,您需要处理大量行以创建显着的差异。
如果您好奇无论如何都很重要,那么请不要忘记测量框架将类映射到数据库表所花费的时间。 ORM消耗的资源比循环SQL INSERT更有可能。