PHP Red Bean ORM Leistungsproblem

8

Ich mache einen WebService in php, den meine Website benutzt, um Informationen mit Ajax -Aufrufen abzufragen.

Zuerst habe ich es einfach mit der eingebauten php mysql lib gemacht, und alle Abfragen manuell geschrieben und das ganze Datenmodell in MySQL Workbench und so weiter gemacht. Dies war sehr zeitaufwändig und wenn ich das Datenmodell später ändern musste, würde alles sehr kompliziert werden. Also entschied ich mich für ein PHP ORM und ich fand RedBean Das scheint mir reine Magie und Freude zu sein.

Aber ich habe Probleme mit Leistungsproblemen. Meine Website ist eine Website für Benutzer, um ihre eigenen Listen von TV-Serien zu erstellen. Ich frage eine externe Quelle für eine Serie und füge sie in meine Datenbank ein, wenn sie nicht schon da ist, sonst bekomme ich sie aus meiner eigenen Datenbank von.

Das XML, das ich von dieser externen Quelle zurückbekomme, listet die Serie, Staffeln, Episoden usw. auf und ich speichere alles so.

%Vor%

Das Problem ist, dass es etwa 5 Minuten dauert, um eine Serie einzufügen, und es fügt auch Duplikate ein, und R::freeze(); hilft auch nicht bei der Leistung.

F: Wie kann ich dieses Problem beheben, was kann ich tun, um redbean besser zu machen, was kann ich mit meinem eigenen Code tun, damit es besser funktioniert, oder sollte ich einfach ein anderes Lösungs / Ansatz-Framework verwenden? usw.?

Versuchte gemeinsam genutzte Listen wie vorgeschlagen, aber mit dem gleichen Ergebnis.

%Vor%     
furier 20.05.2012, 16:35
quelle

2 Antworten

7

Ich habe schließlich herausgefunden, wie man die Ausführungszeit von 5 Minuten auf ungefähr 11 Sekunden verringert, nimmt aber immer noch viel Zeit in Anspruch, aber angesichts der Menge an Daten und Arbeit, die es zu leisten hat, ist es gut für diese Hardware.

Ich habe diese Codezeilen hinzugefügt

%Vor%

Jetzt sammelt es die gesamte Arbeit und führt sie in einer großen Transaktion wie dem Muster der Arbeitseinheit aus. Um das Einfügen von Duplikaten zu verhindern, habe ich auf

umgestellt %Vor%

Dann gebe ich einfach die Bean zurück, wenn sie bereits existiert, wenn ich nicht eine neue erzeuge und sie zurückgebe.

    
furier 24.05.2012, 22:15
quelle
0

Haben Sie versucht, gemeinsam genutzte Listen zu verwenden, anstatt die Beziehungen zu durchlaufen?

%Vor%

Ссылка

    
AmusableLemur 20.05.2012 17:58
quelle

Tags und Links