Hallo,
Ich bin mit etwas unsicher was das Speichern b.z.w. Updaten von User Daten betrifft.
Ich habe in einen Internal von ca 5 Minuten vor Positionen von Spielern zu Speichern bzw zu aktualisieren.
Zum einen wollte ich vermieden bei 1000 bis 2000 Spielern jeden einzeln alle 5 Minuten zu Speichern. Ich schätze es als nicht sinnvoll ein.
Ein wenig google brachte mich zu 2 Varianten welche mich alle in einem query Unterbringen lässt.
zum einen
UPDATE player SET x CASE WHEN id=1 THEN '0.000' WHEN id=2 THEN '0.000' ..... ELSE x END
Hier sehe ich das Problem das wirklich alles aktualisiert wird auch welche ich nicht Updaten muss
oder
INSERT INTO player (id, x) VALUES (1, '0.000),(2, '0.000) ON DUPLICATE KEY UPDATE x=VALUES(x)
wobei ich bei INSERT INTO bereits feststellen musste das mit auch schon daten verloren gegangen sind da es Einträge gab welche nur x und id enthalten haben, alles andere war leer bzw Default.
Vielleicht könnt ihr mir ja einen Tipp geben was ich bevorzugt machen kann.
Ich bin mit etwas unsicher was das Speichern b.z.w. Updaten von User Daten betrifft.
Ich habe in einen Internal von ca 5 Minuten vor Positionen von Spielern zu Speichern bzw zu aktualisieren.
Zum einen wollte ich vermieden bei 1000 bis 2000 Spielern jeden einzeln alle 5 Minuten zu Speichern. Ich schätze es als nicht sinnvoll ein.
Ein wenig google brachte mich zu 2 Varianten welche mich alle in einem query Unterbringen lässt.
zum einen
UPDATE player SET x CASE WHEN id=1 THEN '0.000' WHEN id=2 THEN '0.000' ..... ELSE x END
Hier sehe ich das Problem das wirklich alles aktualisiert wird auch welche ich nicht Updaten muss
oder
INSERT INTO player (id, x) VALUES (1, '0.000),(2, '0.000) ON DUPLICATE KEY UPDATE x=VALUES(x)
wobei ich bei INSERT INTO bereits feststellen musste das mit auch schon daten verloren gegangen sind da es Einträge gab welche nur x und id enthalten haben, alles andere war leer bzw Default.
Vielleicht könnt ihr mir ja einen Tipp geben was ich bevorzugt machen kann.