有一验证码数据表,有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; } }
交互式爱情