Yii는 동시성으로 인한 부정확한 업데이트 데이터를 어떻게 방지하나요? 이 글에서는 동시성으로 인해 부정확한 업데이트 데이터가 발생하는 것을 방지하는 Yii의 간단한 솔루션을 주로 소개합니다. 그것이 모두에게 도움이 되기를 바랍니다.
Yii의 유용한 코드 공유:
일일 쿼리 볼륨 계산과 같이 데이터베이스의 특정 필드를 증가시켜야 할 때 각 요청 뒤에 request_count + 1을 추가하세요.
다음과 같이 작성하면 :
$model->request_count++; $flag = $model->save();
동시성이 발생하면 부정확해집니다.
$flag = static::updateAll([ 'report_count' => new \yii\db\Expression("`request_count` + 1") ], [ 'id' => $model->id ]);
6개의 프로세스를 동시에 열어 삽입하면 각 프로세스는 100배로 증가하고 두 번째 방법은 587개로 증가합니다. 방법이 600으로 증가합니다.
관련 권장사항:
Yii 프레임워크의 데이터 일괄 삽입을 위한 단순 확장 클래스에 대한 자세한 설명
Yii 프레임워크 매개변수화된 쿼리의 IN 쿼리가 하나만 쿼리할 수 있는 문제 해결
위 내용은 Yii가 동시성으로 인한 부정확한 업데이트 데이터를 방지하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!