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 サイトの他の関連記事を参照してください。