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