Bad Bingo: Datenbank-Queries vereinfachen

Beitrag lesen

Hallo,

ich bin dabei die Performance einer Firmeninternen Webseite (PHP 5 + MySQL 5.0) zu erhöhen und bräuchte mal ein paar Tipps :-)

Per CronJob rufe ich ein PHP-Script auf, das von verschiedenen Servern meiner Firma (und ein paar Partnern) eine Liste von Daten einliest (welche von einem PHP-Script generiert werden).
Diese Daten werden dann in eine Datenbank in Tabelle 1 eingetragen, wobei bereits vorhandene Einträge ignoriert/upgedated werden. Durch einen Trigger in Tabelle 1 werden automatisch auch Einträge in einer 2. Tabelle eingetragen/updated, welche einem Eintrag aus Tabelle 1 einen Server zuweist.

Wenn also die Daten von dem Server mit der ID 234 geholt wurden, werden die einzelnen Datensätze in Tabelle 1 eingefügt, zB:
data='Bla blubb', last_server='234', id=33

Durch den Trigger in Tabelle 1 wird in Tabelle 2 ein Eintrag angelegt:
server='234', data_id=33

Nun dient das Feld last_server in Tabelle 1 jedoch nur als "Zwischen-Speicher", damit ich per Trigger diese Data-Server-Zuweisung in die 2. Tabelle einfügen kann.

Werden die Daten auch auf einem anderen Server gefunden, wird nur das last_server-Feld geupdated, sodass der Trigger gefeuert und die 2. Tabelle bearbeitet wird.

Aus Tabelle 2 werden regelmäig veraltete Daten-Server-Zuweisungen gelöscht, sodass die Daten an sich noch in Tabelle 1 stehen, aber keine Zuweisung mehr zu einem Server besteht ... soweit klar? :D

Jetzt handelt es sich aber mittlerweile schon um Hunderttausende Data-Einträge, die jedes mal von den einzelnen Servern geholt und versucht werden in Tabelle 1 einzutragen.
Dabei findet mindestens immer ein Update des Felds last_server statt, sofern der Datensatz schon existierte (ansonsten ein insert), damit die 2. Tabelle bearbeitet wird (ein weiterer insert/update).

Meine Frage ist, ob jemandem auf Anhieb ein einfacheres System einfällt. :-)

PS: Die Data-Listen der Server kann ich nicht verändern. Diese liefern immer die komplette Liste und nicht nur die neu hinzugefügten Daten.

Gruss
Bad Bingo