有一验证码数据表,有200万条数据,验证码字段需要唯一需要往这个表里插入大批量的数据,每次插入几万条左右数据如何优化每次的执行时间现在的做法:先生成好包含唯一验证码的数组。根据数组去验证码表里查,发现存在的重新生成5000一次分批插入privatefunctiongenerateUniqueValidationCodes(int$number){//生成指定数量的不重复的验证码$codeArr=$this->generateUniqueCodes($number);//去表中查询是否有存在的$result=ValidationCode::query()->whereIn('validation_code',$codeArr)->get();//如果有存在的重新生成if($result->isNotEmpty()){$this->generateUniqueValidationCodes($number);}else{return$codeArr;}}
2 回答
慕桂英4014372
TA贡献1871条经验 获得超13个赞
代码有小错误$this->generateUniqueValidationCodes($number);这里还得加上return验证码字段需要唯一,好奇这个为什么要唯一?唯一的话,你加上UniqueIndex好了
添加回答
举报
0/150
提交
取消