Deblin: SELECT in einer Schleife schlecht

Beitrag lesen

Hallo Forum,

ich plane derzeit ein neues Projekt und stehe gerade vor einer Entscheidung, wie ich etwas löse. Geplant ist ein Browser-Spiel.

Man tritt "gegeneinander an". Es gibt eine Tabelle in der Statistiken jedes Users gespiechert sind. Z.B: Angriff, Abwehr.

So jetzt möchte ich es so machen, dass man während des Tages sich einen Gegner aussuchen kann und wenn dieser bestätigt die Gegenüberstellung in eine Kampf-Tabelle  eingetragen wird. (MySQl-DB)

Felder könnte ich mir so vorstellen:

Tabelle Gegenüberstellung: id, u1_id, u2_id, gew_id

Nachts soll die Gegenüberstellung per Cronjob ausgeführt werden (Aufrufen einer PHP-Datei) und da weiß ich nicht so genau wie ich das lösen könnte.

Es sollen quasi für jede Gegenüberstellung die entsprechenden Statistiken der User ausgelesen werden, verarbeitet werden und anschließend die Tabelle Gegenüberstellung aktualisiert werden(Update).

Was ich aber aufgrund von Performance-Problemen unbedingt vermeiden möchte ist, dass ich in eine Schleife SELECT und UPDATE Anweisungen dafür schreiben muss.

Sowas möchte ich NICHT:

  
- Auslesen der Gegenüberstellungen  
  
<Start-Schleife solange bis alle Gegenüberstellungen>  
- Auslesen Stats User1 aus DB (SELECT)  
- Auslesen Stats User2 aus DB (SELECT)  
- Verarbeitung in PHP  
- Aktualisierung der DB (UPDATE)  
<Ende-Schleife>  

Kann ich die Abfragen in der Schleife irgendwie umgehen bzw. optimieren?

Danke im Vorraus