Martin Truckenbrodt hat geschrieben:Außerdem finde ich es nicht empfehlenswert an den Standardtabellen des phpBB einfach mal schnell ein Feld hinzu zu fügen. IMO sollte ein verantwortungsbewußt geschriebener MOD immer auschließlich eigene Tabellen erstellen und benutzen.
Und genau an dieser Stelle erreichen wir kaum etwas anderes, je nach Mod, als ein aufgeblasenes Querymonster das bei 100 zeitgleichen Usern bereits den Server in die Knie gehen läßt.
Jeder Query ist ein Query zu viel!
Die Kunst der Optimierung liegt darin so wenig wie möglich Datenbankabfragen zu starten und in so wenig wie möglich Datenbankfelder zu schreiben.
Wer bspw. nicht den Colourgroup mit den normalen Forengruppen vereinigt (Tabellen und abfragen), der sollte nicht zu viele User erhalten. Neben der normalen Gruppenabfrage erfolgt hier eine weitere aus einer anderen Tabelle. Beides läuft auch wunderbar über eine Tabelle und verschwendet so nicht meine Serverzeit und die Zeit des Users beim laden.
Dieser Mod ist somit eindeutig nicht verantwortungsbewußt geschrieben, da er meine Serverzeit und die Zeit des User belastet. Verantwortungsvoll wäre eine saubere implementierung unter Ausnutzung der vorhandenen Möglichkeiten. Der Colourgroup verschwendet sauber eingepflegt in das System (Wobei er nur als Basis dient und 80% recht schnell entfernt werden kann/sollte) fast keine Serverzeit.
Ein gut geschriebener Mod erfindet eben nicht das Rad neu, sondern setzt auf vorhandenem auf und integriert sich derart, daß er wenig am Originalcode verändert und dabei alle benötigten Daten aus den bereits vorhandenen und zwingend benötigten Daten herausfiltert und nutzt.
Es ist somit also sehr empfehlenswert ein weiteres Feld in eine bestehende Tabelle zu integrieren, wenn diese Tabelle genau an dieser Stelle auch benötigt wird. Es ist leichter sich eine User-ID ausgeben zu lassen, welche eh vorhanden ist und dabei noch eben ein Feld mit auswerfen zu lassen, welches direkt an die User-ID geknüpft ist. Im anderen Fall würde eine weitere DB-Anfrage gestartet werden und den Server belasten. Jede Ausgabe aus der Datenbank ist eine Belastung.
Bspw. (da bereits abgeführt) ist es unsinnig extra Farbgruppen zu speichern, wenn ich eine Gruppenabfrage habe. Man kann ebenso eine vorhandene Gruppe nehmen und dort eine Farbe zufügen. Es wird so nur eine Tabelle und dort 2 Felder ausgelesen, bearbeitet und ausgegeben.
Im anderen Fall sind es 2 Tabellen und 3 Felder.
Jedem dürfte klar sein was die DB mehr belastet, mehr Zeit kostet und absolut überflüssig ist.
-Das ist keine Kritik an deinem Mod.
Ich kenne diesen bisher nicht. Ich wollte nur auf diesen groben Fehler aufmerksam machen, welcher jedem verantwortungsvollen Forenbetreiber viele Stunden der Bastelarbeit beschert und unwissende über langsame Foren klagen läßt. Nicht die Funktionen verlangsamen ein Forum, sondern die Struktur der Abarbeitung.