Ausführliche Erklärung, wie Yii ungenaue Aktualisierungsdaten verhindert, die durch Parallelität verursacht werden

*文
Freigeben: 2023-03-19 07:40:01
Original
1478 Leute haben es durchsucht

Wie verhindert Yii ungenaue Aktualisierungsdaten, die durch Parallelität verursacht werden? In diesem Artikel wird hauptsächlich die einfache Lösung von Yii vorgestellt, um zu verhindern, dass Parallelität zu ungenauen Aktualisierungsdaten führt. Freunde in Not können sich darauf beziehen. Ich hoffe, es hilft allen.

Teilen Sie einen nützlichen Code von Yii:

Wenn Sie ein bestimmtes Feld in der Datenbank erhöhen müssen, z. B. um die Anzahl der Abfragen pro Tag zu zählen, fügen Sie hinzu request_count nach jeder Anfrage +1,

Wenn Sie so schreiben:

$model->request_count++;
$flag = $model->save();
Nach dem Login kopieren

wird es ungenau, wenn Sie auf Parallelität stoßen. Sie können es ändern in:

$flag = static::updateAll([
'report_count' => new \yii\db\Expression("`request_count` + 1")
], [
'id' => $model->id
]);
Nach dem Login kopieren

Öffnen Sie sechs Prozesse gleichzeitig zum Einfügen. Durch die Erhöhung jedes Prozesses um das 100-fache wurde die erste Methode nur auf 587 und die zweite Methode auf 600 erhöht.

Verwandte Empfehlungen:

Detaillierte Erläuterung der einfachen Erweiterungsklasse des Yii-Frameworks zum Batch-Einfügen von Daten

Lösen Sie das Problem, dass IN-Abfragen in der parametrisierten Abfrage des Yii-Frameworks nur eine Abfrage abfragen können

Yii löst das Problem von „DeleteAll“. Fehlermeldung beim Löschen der Verbindungstabelle

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie Yii ungenaue Aktualisierungsdaten verhindert, die durch Parallelität verursacht werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage