>  기사  >  백엔드 개발  >  Yii가 동시성으로 인한 부정확한 업데이트 데이터를 방지하는 방법에 대한 자세한 설명

Yii가 동시성으로 인한 부정확한 업데이트 데이터를 방지하는 방법에 대한 자세한 설명

*文
*文원래의
2018-01-03 13:47:051422검색

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 DeleteAll 테이블 삭제 오류 문제 해결

위 내용은 Yii가 동시성으로 인한 부정확한 업데이트 데이터를 방지하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.