有一驗證碼數據表,有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 關注
- 1325 瀏覽
添加回答
舉報
0/150
提交
取消