WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » [SQL] Schleife durch Query ersetzen » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von moser
Bitteschön, gern geschen...
von Yhoko
Danke, das klingt vielversprechend.

Nach einem Blick in die MySQL-Manual werde ich mich wohl auch mal an Locks machen, ich denke damit ist das Problem ausreichend sauber gelöst
von moser
Ok, folgendes:

1. Du legst eine Tabelle flat_count an:
flat_id
count_users


die befüllst Du wie folgt mit Daten:
INSERT INTO flat_count VALUES SELECT flat_id, count(user_id) FROM flat_users GROUP BY flat_id;


2. Nun überprüfst Du fortan wie folgt:
Du liest diese Tabelle als "alten Stand" ein und vergleichst Ihn zeilenweise mit dem bislang oft genug geposteten Query. Und nur dort wo unstimmigkeiten auftreten, aktualisierst Du punktgenau eben genau diese Wohnung.


von Yhoko
Es ging mir mehr um die Performance, denn bei mehreren 1000 Wohnungen (= mehrere 2*1000 Querys) geht das ganz schön auf die CPU.
von moser
Ach so. Dann entschuldige meine Wortwahl.
Aber ich hatte mal ein ähnliches Problem (da ging es um Scores und Ranking-Scores bei einem Quiz) und habe mich letztendlich dafür entschieden bei den Schleifen zu bleiben. Es mag Dir primitiv erscheinen, aber es hat einen sehr gewichtigen Vorteil:

Dynamik. Denn so schließt Du aus, dass fehlerhafte Updates, Dir deine gesamte Tabelle zerhauen. Zudem: Ein Server verkraftet das schon, ein paar Datensätze aus einer Datenbank zu holen. (Limit sind 2GB Daten pro Tabelle!)



Nach oben