在开发过程中,我们经常需要将大量数据存储到MySQL数据库中。如果使用单个SQL语句插入会很耗时,因此我们可以使用批量插入的方式优化。
批量插入是将多个记录一次性插入到数据库中,相比单条插入,能够大幅提升数据插入的效率。
// 示例代码:批量插入
$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'user', 'password');
// 开始事务
$pdo->beginTransaction();
// 插入数据
$data = [
['name' =>'张三', 'age' =>20, 'gender' =>'男'],
['name' =>'李四', 'age' =>25, 'gender' =>'男'],
['name' =>'王五', 'age' =>30, 'gender' =>'女'],
// ... 其他数据
];
foreach ($data as $item) {
$name = $pdo->quote($item['name']); // 处理特殊字符
$age = (int) $item['age'];
$gender = $pdo->quote($item['gender']); // 处理特殊字符
$query = "INSERT INTO `users` (`name`, `age`, `gender`) VALUES ($name, $age, $gender)";
$pdo->exec($query);
}
// 提交事务
$pdo->commit();
从上面的代码可以看出,批量插入的原理就是将插入语句放入循环中进行批量执行,这样可以减少插入语句的发送次数。
注意,在使用批量插入时,需要处理好特殊字符,防止SQL注入等攻击。