ホームページ >バックエンド開発 >PHPチュートリアル >Yii が同時実行性によって引き起こされる不正確な更新データをどのように防ぐかについての詳細な説明

Yii が同時実行性によって引き起こされる不正確な更新データをどのように防ぐかについての詳細な説明

*文
*文オリジナル
2018-01-03 13:47:051518ブラウズ

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クエリが1つのクエリしかクエリできない問題を解決します

Yii DeleteAll テーブル削除エラーの問題を解決します

以上がYii が同時実行性によって引き起こされる不正確な更新データをどのように防ぐかについての詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。