MySQL Queries analysieren

jojojan

Mitglied
Einen wunder schönen guten Morgen,

ich stehe mal wieder vor einem Problem und weiß nicht weiter.

Ich habe mir ein kleines CMS gebastelt, was soweit auch wunderbar läuft. Nun würde ich allerdings ganz gerne die ganze Geschichte auf Performance testen. Eigentlich wäre mir nur wichtig auf welcher Seite welche MySQL Queries abgesetzt werden und wie schnell die sind.
Da es beim programmieren immer wieder mal dazu gekommen ist und viele includes vorhanden sind, habe ich etwas den Überblick verloren ;)

Ich habe mir zu Testzwecken mal den Jet Profiler runtergeladen und angeschmissen und hab ein wenig wild rumgeklickt. Er zeigt mir zwar auch an dass Traffic da ist, aber er zeigt mir keine Queries an.

Daher suche ich ein Programm(möglichst kostenlos) oder eine Idee wie es schaffen könnte sämtliche Queries zu loggen inkl. der Zeit die sie benötigen. Ich will ja sehr gehen bevor ich es auf die Öffentlichkeit los lasse, das es auch wirklich gut läuft ;)

Das nächste Problem was ich habe ist, das zur Zeit alles nur auf einem Webspace von Hetzner liegt.

Über eure Ideen/Anregungen wäre ich dankabr.

Gruß
jojojan
 
Hast du eine Datenbankklasse (sollte eigtl. jedes CMS haben)?
Wenn ja, würde ich einfach in die Query-Funktion eine Logging-Funktion einbauen.
PHP:
class MySQL extends DatabaseBaseClass
{
  /* ... */
  private $Queries;
  /* ... */
  public function __construct(/* ... */)
  {
     /* ...*/
     $this->Queries = array();
  }


  public function Query($str)
  {
     /* Query ausführen */
     $this->Queries[] = $str;
  }
  public function GetQueriesAsHTML()
  {
    $html = "<ul>";
    foreach ($this->Queries as $Query)
    {
       $html .= "<li>".htmlspecialchars($Query, ENT_QUOTES)."</li>";
    }
    return $html;
  }
}
 
Ah Super danke für die schnelle Antwort.
Allerdings muss ich zu meiner Schande gestehen dass ich ohne Datenbankklasse gearbeitet habe :rolleyes:
 
Dann solltest du aber dein CMS gründlich überarbeiten!
Sonst wird es leider keinen so großen "Marktanteil" haben.

Was mir noch einfiele, wäre eine "Stored Procedure" in MySQL zu entwerfen, die alles protokolliert.
Allerdings kenne ich mich da gar nicht so gut aus.
 
Also wegen dem Marktanteil mache ich mir keine Sorgen, da es eigentlich nur für mich gedacht ist um ein paar Projekte leichter zu realisieren. Also ausser mir wird das Innenleben keiner zu Gesicht bekommen ;)

Daher glaube ich auch nicht dass sich der Aufwand lohnen würde es auf Klassen umzubauen da es ja auch so ganz gut funktioniert.

Mir ist aber gerade noch eine andere Idee gekommen. Ich könnte doch das ganze lokal unter XAMPP laufen lassen, dann müsste es doch möglich sein die Queries mit zu loggen, oder?
 
Ich könnte doch das ganze lokal unter XAMPP laufen lassen, dann müsste es doch möglich sein die Queries mit zu loggen, oder?
Bestimmt geht das irgendwie!
Das habe ich mal gefunden, das könnte es vielleicht sein: http://dev.mysql.com/doc/refman/5.0/en/server-logs.html

Also wegen dem Marktanteil mache ich mir keine Sorgen, da es eigentlich nur für mich gedacht ist um ein paar Projekte leichter zu realisieren. Also ausser mir wird das Innenleben keiner zu Gesicht bekommen ;)

Daher glaube ich auch nicht dass sich der Aufwand lohnen würde es auf Klassen umzubauen da es ja auch so ganz gut funktioniert.
Es ist deine Entscheidung, aber wenn ich dir einen Tip geben darf:
Genau dasselbe hatte ich auch mal gemacht (auch nur für mich!), zwar nicht so ganz ein CMS, jedoch auch einigermaßen groß. Und ich hatte da später nie mehr den Überblick gehabt.
Und seit dem habe ich dann objekt-orientiert gearbeitet und vieles sehr abstrahiert und das spart wirklich Zeit und macht mehr Spaß!!
Vor allem wenn du es auch auf mehrere Projekte legst. Naja war nur ein gut gemeinter Rat von mir ;)
 
Erstmal Danke an dich, Felix Jacobi, für den Link. Nur irgendwie ist es nicht was ich gesucht habe.

Tja was soll ich sagen ComFreek, du hast mich wirklich zum nachdenken gebracht...Ich bin nun ernsthaft am überlegen ob ich nicht wirklich mit einer Klasse arbeiten soll. Aber da ich selbst noch nicht soviele Erfahrungen mit Klassen gesammelt habe, (habe mich bisher immer erfolgreich drücken können^^) bin ich noch etwas unsicher ob ich den Sprung wagen soll.
Am meisten Bauchschmerzen bereitet mir ja dass ich dann sämtliche Dateien durchgehen und ändern muss und wenn dann nichts mehr läuft hab ich den Super Gau^^
 
Nicht so schlimm...;-)

Ja das wäre wahrscheinlich viel Arbeit.
Aus Erfahrung habe ich gemerkt, dass Ändern meist mehr Fehler und mehr Zeit kostet als es neuzuschreiben. Wie groß ist denn dein CMS genau?
Aber da ich selbst noch nicht soviele Erfahrungen mit Klassen gesammelt habe [...]
Nunja ein CMS ist ja nicht so leicht zu schreiben, vor allem wenn man wenig (?) Kenntnisse in Sachen OOP (=objekt-orientierte-Programmierung) hat.
Aber vielleicht könntest du dich doch heranwagen, du musst ja nicht gleich alles in Klassen umwandeln.
 
Zuletzt bearbeitet:
Man kann vieles machen wenn man wenig bis keine ahnung hat^^.

Nein mal im ernst, es ist auch kein wirkliches CMS sonder geht eher in die Richtung CMS.
Und das ganze habe ich mit hilfe von Smarty umgesetzt da ich da eine schöne Trennung zwischen PHP und Html habe und auch mal schön schnell das Design wechseln kann.
Und Smarty arbeitet ja auch mit Klassen von daher ist ein gewissen Grundverständnis da, nur habe ich mich nicht sonderlich viel damit befasst.
Im Grunde kommen ca. 60 Dateien in Frage bei denen ich die Klasse nutzen müsste.
Von daher wird meine Fehlerquote mit Sicherheit größer sein als meine Erfolgsquote.

Aber du hast sicherlich Recht dass wenn ich von Anfang an auf Klassen gesetzt hätte, wäre ich jetzt besser dran;).
Ich hätte wahrscheinlich von Anfang an den Fokus mehr auf debuggen legen sollen, aber konnte ja keiner ahnen dass es komplex wird.^^

Tja nur leider ist man hinterher immer schlauer als vorher^^
 
Zurück