Datenbankabfrage ermitteln

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Highwayman
Mitglied
Beiträge: 549
Registriert: 21.04.2005 15:52
Wohnort: Thailand
Kontaktdaten:

Datenbankabfrage ermitteln

Beitrag von Highwayman »

Hallo
Ich habe zur Zeit das Problem, dass seit einigen tagen das Forum sehr träge ist! Laut Auskunft des Hosters liege es daran, dass bei jeder Abfrage im Forum, bzw. bei jedem Klick im Hintergrund 2-4 identische MySQL Abfragen ausgelöst werden.

Wie stelle ich fest, was das für Abfragen sind!

Schönen Tag

Highway
Macht mehr LIEBE statt Hiebe!
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12250
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Datenbankabfrage ermitteln

Beitrag von Mahony »

Hallo
Aktiviere mal in der config.php den Debug-Modus und schau dann unter EXPLAIN (im Footer des Forums) nach, was die Probleme verursacht.




Grüße: Mahony
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Highwayman
Mitglied
Beiträge: 549
Registriert: 21.04.2005 15:52
Wohnort: Thailand
Kontaktdaten:

Re: Datenbankabfrage ermitteln

Beitrag von Highwayman »

Mahony, zuerst mal danke. Nur ehrlich gesagt, ich weiss nicht was ich mit diesen Daten anfangen soll! Ich habe es mal verlinkt: Klicke hier

Gruss aus Thailand

Bruno
Macht mehr LIEBE statt Hiebe!
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12250
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Datenbankabfrage ermitteln

Beitrag von Mahony »

Hallo
Lies dir mal diese Dokumentation durch EXPLAIN-Syntax (Informationen über ein SELECT erhalten)

Wichtig sind hierbei die folgenden Aussagen:
# Using filesort

MySQL muss einen zusätzlichen Durchlauf vornehmen, um zu ermitteln, wie die Datensätze in sortierter Reihenfolge abgerufen werden können. Diese Sortierung erfolgt, indem alle Datensätze entsprechend dem Join-Typ überprüft und Sortierschlüssel sowie der Zeiger auf den Datensatz für alle Datensätze gespeichert werden, die der WHERE-Klausel entsprechen. Die Schlüssel werden dann sortiert und die Datensätze entsprechend in sortierter Reihenfolge abgerufen. Siehe auch Abschnitt 7.2.12, „ORDER BY-Optimierung“.
Wollen Sie Ihre Abfragen so schnell wie möglich machen, dann sollten Sie nach den Extra-Werten Using filesort und Using temporary suchen.
Bei den Abfragen, wo using filesort angezeigt wird, bedeutet dies, dass kein Index für die Sortierung verwendet werden kann und MySQL sortiert dann recht aufwendig eben über dieses filesort.


Kandidat Nummer eins für eine Optimierung ist in jedem Fall dein verwendeter Album MOD (soweit ich das den Abfragen entnehmen konnte).

Kandidat Nummer zwei wäre dann noch der wwh MOD.

Von welchem MOD die Abfragen mit einer Dauer von über 2 Sekunden stammen, kann ich so nicht sagen.
Ich nehme an, es handelt sich dabei um einen Statistik-MOD. Dieser MOD verbraucht die meisten Ressourcen und muss entweder optimiert oder eben ausgebaut werden.


Grüße: Mahony
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Highwayman
Mitglied
Beiträge: 549
Registriert: 21.04.2005 15:52
Wohnort: Thailand
Kontaktdaten:

Re: Datenbankabfrage ermitteln

Beitrag von Highwayman »

Mahony hat geschrieben:Lies dir mal diese Dokumentation durch EXPLAIN-Syntax (Informationen über ein SELECT erhalten)
Kandidat Nummer eins für eine Optimierung ist in jedem Fall dein verwendeter Album MOD (soweit ich das den Abfragen entnehmen konnte).

Kandidat Nummer zwei wäre dann noch der wwh MOD.
Danke dir vorerst, nur wenn ich deinen Link öffne, dann wird es mir schwarz vor Augen. Datenbank war und ist ein Graus für mich, etwas, was mich sofort zum Schwitzen bringt, trotz dem Ventilator neben mir!

Zu deinen Kandidaten eins und zwei! Ich war immer der Überzeugung, dass gerade von Nick keine zu grossen Abfragen kommen! Und das interessante ich ja auch, dass es erst seit Freitag Abends so ist und ich von Mittwoch bis Sonntag nichts änderte am phpbb, da ich auf Reisen war!

Gruss

Bruno

Der sich nun ein grosses Badetuch zum Schweiss abtrocknen holt und dann nochmals den Versuch startet mit dem Text! :oops:

EDIT zu deinem Nachtrag:

Als letztes hatte ich den User Log eingebaut, werde den mal wieder rausschmeissen und schauen!
Macht mehr LIEBE statt Hiebe!
deville1968
Mitglied
Beiträge: 139
Registriert: 06.09.2008 08:35

Re: Datenbankabfrage ermitteln

Beitrag von deville1968 »

dann springe ich hier mal rein, da ich auch teils elende zugriffszeiten habe. anbei der screenshot, wenn ich den richtig deute, fehlen hier also indizes in der phpbb_forums . aber welche?

[ externes Bild ]
deville1968
Mitglied
Beiträge: 139
Registriert: 06.09.2008 08:35

Re: Datenbankabfrage ermitteln

Beitrag von deville1968 »

*bump*
Charlie_M
Mitglied
Beiträge: 1210
Registriert: 17.07.2008 13:09
Kontaktdaten:

Re: Datenbankabfrage ermitteln

Beitrag von Charlie_M »

Ich hab auch eine Frage dazu Ich hab eine Seite integriert und mal die Abfragen überprüft...nun, da kommen ein paar Meldungen raus wie:
***.php on line 456: Undefined variable: name_of_variable
Muss ich mir darum Gedanken machen, also quasi ein "Anfängerfehler" und wie lös ich das am Besten?
:oops:

Danke & Gruß
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12250
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Datenbankabfrage ermitteln

Beitrag von Mahony »

Hallo
wie lös ich das am Besten?
Du solltest die Variablen definieren (so wie es die Meldung dir auch sagt).
Beispiel:

Code: Alles auswählen

$variable = 0; // Deklaration und Initialisierung als INTEGER (Ganzzahl)
$text = "";  // string (Zeichenkette)
 
Grüße: Mahony
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Charlie_M
Mitglied
Beiträge: 1210
Registriert: 17.07.2008 13:09
Kontaktdaten:

Re: Datenbankabfrage ermitteln

Beitrag von Charlie_M »

Danke...definieren kenn ich halt bei anderen Programmiersprachen anders - als Typ. :D
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“