批量插入1000万条数据:
public function insertData(){ set_time_limit(0); ini_set("memory_limit",-1); $startTime = time(); // 插入100w条数据,测试用时 109s // 插入1000w条数据,测试用时 1339s $num = 10000000; for($i=1;$i <= $num;$i++){ $insertData[] = array( 'name'=>'name_'.$i, 'sex'=>mt_rand(0, 1) ); } $db = Db::connect(config('DB_CONFIG')); $onceNum = 1000; $limit = ceil($num/$onceNum); try{ for($i = 1;$i <= $limit;$i++){ $offset = ($i-1) * $onceNum; $data = array_slice($insertData,$offset,$onceNum); $db->name('user')->insertAll($data); } $endTime = time(); $useTime = $endTime - $startTime; echo "$num 数据插入用时:$useTime 秒"; }catch (\Exception $e){ echo "出现异常:".$e->getMessage(); } } 批量更新1000万条数据
public function insertNum(){ set_time_limit(0); ini_set("memory_limit",-1); $startTime = time(); $userModel = new Tuser(); $num = 10000000; for($i=1;$i <= $num;$i++){ $updateData[] = array( 'id'=>$i, 'num'=>mt_rand(0,100000) ); } $onceNum = 1000; $limit = ceil($num/$onceNum); try{ for($i = 1;$i <= $limit;$i++){ $offset = ($i-1) * $onceNum; $data = array_slice($updateData,$offset,$onceNum); $userModel->saveAll($data); } $endTime = time(); $useTime = $endTime - $startTime; echo "$num 条数据更新用时:$useTime 秒"; }catch (\Exception $e){ echo "出现异常:".$e->getMessage(); } } 其中Tuser.php模型:
class Tuser extends Model { protected $connection = array( // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'test', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => 'xxx', // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'test_', ); // 定义主键和数据表 protected $pk = 'id'; protected $table = 'test_user'; } app.php中数据库配置:
'DB_CONFIG'=>array( // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'test', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => 'xxx', // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'test_', )
更多精彩内容:各种AI课程、技能课程、黑科技软件、网站小程序源码、副业小项目、PPT模板等精品素材、电商课程、推广引流课程等,尽在 天边资源网 。