db('baiwan')->startTrans();
for ($i = 0; $i < 1000000; $i++) {
$data[] = array(
'name' => 'user' . $i,
'gender' => rand(0, 1) ? '男' : '女',
'address' => 'henan',
'email' => 'user' . $i . '@example.com'
);
if ($i % 10000 == 0) {
// 一次10000
$result = db('baiwan')->insertAll($data);
if (!$result) {
// 插入失败回滚
db('baiwan')->rollback();
return json('插入失败');
}
$data = array();
}
}
if (!empty($data)) {
// 最后不足10000条数据的再次批量插入
$result = db('baiwan')->insertAll($data);
if (!$result) {
// 插入失败回滚
db('baiwan')->rollback();
return json('失败');
}
}
// 提交事务
db('baiwan')->commit();
// 插入成功处理
return json('成功');
php实现百万级数据的插入
于 2023-06-17 10:47:23 首次发布