PHP往Mysql里插入唯一随机字符串的效率问题

有一验证码数据表,有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;
}
}
繁星淼淼
浏览 353回答 2
2回答

慕桂英4014372

代码有小错误$this->generateUniqueValidationCodes($number);这里还得加上return验证码字段需要唯一,好奇这个为什么要唯一?唯一的话,你加上UniqueIndex好了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript