考虑到性能当然不能按数组元素遍历来执行插入操作。 有两个方法可供选择,一种是把数据存入csv文件,然后执行load data infile 还有一种就是类似于sql server里面的bulk insert,使用insert语句插入批量数据,结合PHP的implode函数, 可以很简单的实现大批量
考虑到性能当然不能按数组元素遍历来执行插入操作。
有两个方法可供选择,一种是把数据存入csv文件,然后执行load data infile
还有一种就是类似于sql server里面的bulk insert,使用insert语句插入批量数据,结合PHP的implode函数,
可以很简单的实现大批量数组数据的一次性插入。
$statement = "INSERT INTO table (title, type, customer) VALUES "; foreach( $data as $row) { $statement .= ' ("' . implode($row, '","') . '")'; }
不过大批量数据的插入,需要注意mysql在内存上有限制:
http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_bulk_insert_buffer_size
bulk_insert_buffer_size变量的默认大小为8M, 是指单个线程占用的大小限制,设置为0,表示不做限制。
参考链接:
http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
by iefreer