hallo wie gehts 0 Report post Posted July 8, 2005 Hallo, ich musste in letzter Zeit feststellen das meine Foren Hauptseite recht lange zum laden braucht. Diese braucht im durchschnitt 1-3 Sekunden mit 17 Querys. Unterseiten und Topics werden dagegen in 0.07xx sekunden mit 13 querys generiert. Gibt es möglichkeiten um die Performance der Startseite ein wenig zu verbessern? oder lahmt vielleicht eine Modifikation bei mir rum? aus der Debug Information (level3 + sql querys) wurde ich nicht schlau gibt es eine möglichkeit in der debug mode die Zeit anzeigen zu lassen wie lange er für eine query braucht? das würde mir um einiges helfen gruß Hallo wie gehts Share this post Link to post
Modula 0 Report post Posted July 8, 2005 Du musst im ACP "ENABLE SQL Debug Mode?" auf Yes stellen. Danach rufst du dein Forum etwa so auf: http://testforum.daoc-ds.de/ipb131/index.php?debug=1 wichtig ist, dass du das ?debug=1 anhängst. Share this post Link to post
hallo wie gehts 0 Report post Posted July 8, 2005 oh das wusste ich noch gar nicht so wie es aussieht habe ich gleich 4 übeltäter wie gehe ich bei soetwas am besten vor? übrigens danke für die hilfe modula du hast mir nun schon des öfteren geholfen ;) Share this post Link to post
Modula 0 Report post Posted July 9, 2005 übrigens danke für die hilfe modula du hast mir nun schon des öfteren geholfen gerne - irgendwann mag ich ja auch mal wen der mir hilft Zu den SQL Abfragen... die erste verstehe ich schonmal nicht so recht - kann mir mal bitte wer verraten wieso da überhaupt ein WHERE gesetzt ist? Wenn ich das richtig sehe, soll damit der Autor des letzten Post ausgelesen werden... Das erklärt allerdings nicht wieso die unteren beiden Abfragen so lange dauern... Läuft bei dir der MySQL Server auf dem gleichem server wie dein webspace? kann es sein, dass dieser vielleicht überlastet ist (mal vorsichtig beim Provider nachfragen, ob man dich auf einen anderen server legen könnte) Wenn du noch einen anderen provider hast, kannst du mal zum testen die ibf_members tabelle dorthin kopieren und da mal die abfragen übern phpmyadmin jagen (zum Zeitvergleich) Share this post Link to post
hallo wie gehts 0 Report post Posted July 9, 2005 (edited) mein db server läuft getrennt, also nicht über localhost mein eigentlicher server ist ein root server (2.6 ghz, 1 gig ram) hier mal einen ausschnitt aus der ersten function in der auch die erste qry drin ist: if ($ibforums->member['id']) { $DB->query("SELECT `avatar_size`,`avatar` FROM ibf_members WHERE id='".$ibforums->member['id']."'"); $member = $DB->fetch_row(); $DB->query("SELECT `starter_id` AS id, `starter_name` AS name, COUNT(*) AS `num` FROM `ibf_topics` WHERE starter_id > 0 GROUP BY id ORDER BY num DESC LIMIT 1"); $row = $DB->fetch_row(); $data['tt_id'] = $row[id]; $data['tt_name'] = $row[name]; $data['tt_num'] = $row[num]; $DB->query("SELECT `id`,`name`,`posts` FROM `ibf_members` WHERE 1 AND id > 0 ORDER BY `posts` DESC LIMIT 1"); $row = $DB->fetch_row(); $data['tp_id'] = $row[id]; $data['tp_name'] = $row[name]; $data['tp_num'] = $row[posts]; $DB->query("SELECT COUNT(DISTINCT(t.tid)) as tcnt, COUNT(DISTINCT(p.pid)) as pcnt FROM ibf_posts p, ibf_topics t WHERE p.post_date < ".time()." AND p.post_date > ".$ibforums->member['last_visit']." AND p.topic_id=t.tid"); $row = $DB->fetch_row(); $data['topics_scince'] = $row[tcnt]; $data['posts_scince'] = $row[pcnt]; .... das mit dem anderen provider werde ich später mal probieren Edited July 9, 2005 by hallo wie gehts Share this post Link to post
Modula 0 Report post Posted July 10, 2005 Mal nen paar Vergleichswerte: Zeige Datensätze 0 - 0 (1 insgesamt, die Abfrage dauerte 0.0008 sek) SQL-Befehl: SELECT `id` , `name` , `posts` FROM `daocds_members` WHERE 1 AND id >0 ORDER BY `posts` DESC LIMIT 1 SQL-Befehl SQL-Befehl: SELECT COUNT( DISTINCT ( t.tid ) ) AS tcnt, COUNT( DISTINCT ( p.pid ) ) AS pcnt FROM daocds_posts p, daocds_topics t WHERE p.post_date <1120992045 AND p.post_date >1120923450 AND p.topic_id = t.tid (Ergebnis sofort da, werds ggf. später nochmal durch nen Zeitmessscript jagen, hab aber grad keins hier...) Wie viele Datensätze hast du in der datenbank? Evtl. auf dem gleichen Server mal das ganze mit einer "leeren" Forendatenbank testen ob es da schneller geht. Im moment schaut das für mich so aus als hättest du ein load balancing Problem. Teste auch mal zu unterschiedlichen Uhrzeiten... Ist das ein root server für dich alleine auf dem die datenbank läuft oder bloß ein V-Server mit anderen Kunden noch drauf? Share this post Link to post
hallo wie gehts 0 Report post Posted July 12, 2005 (edited) zum vergleich: SELECT `id`,`name`,`posts` FROM `ibf_members` WHERE 1 AND id > 0 ORDER BY `posts` DESC LIMIT 1 dauert mit einer leeren tabelle 0.0009 mit der vollen hingegen 1.0927 in der über 14000 einträge sind topic/posts habe ich ca. 40000 Ist das ein root server für dich alleine auf dem die datenbank läuft oder bloß ein V-Server mit anderen Kunden noch drauf? soweit ich weiss für mich alleine, uhrzeit gesehen ist da nie ein merkbarer unterschied edit: hat sich nach einer anfrage an meinen host erledigt, die datenbank performance wird im moment verbessert Edited July 25, 2005 by hallo wie gehts Share this post Link to post
hallo wie gehts 0 Report post Posted August 16, 2005 (edited) toll, problem hat sich doch noch nicht erledigt, bei freunden mit gleichem server funktionieren die db abfragen ohne probleme, allerdings besitzen diese kleinere boards hat jemand vielleicht eine idee wie man das ipb bisschen tunen könnte? was die mysql abfragen anbelangt Edited August 16, 2005 by hallo wie gehts Share this post Link to post
Modula 0 Report post Posted August 16, 2005 hat jemand vielleicht eine idee wie man das ipb bisschen tunen könnte? was die mysql abfragen anbelangt da gibts nix mehr zu tunen. Matt hatt die MySQL Abfragen schon so weit optimiert das sich da nichts mehr machen lässt. Die meisten anderen Forensysteme sind da nicht so spaarsam.. In dem Fall kann ich dir weiterhin nur empfehlen, das ganze mal bei einem anderem Provider zu versuchen. Share this post Link to post
hallo wie gehts 0 Report post Posted August 17, 2005 okay, vielen dank noch eine kleine frage nebenbei: in phpmyadmin gibts ja diese "Tabellen optimieren" funktion, was wird da genau gemacht? kann da etwas schiefgehen? habe mit mysql ganz wenig erfahrung Share this post Link to post
Modula 0 Report post Posted August 17, 2005 Damit werden Dateiüberhänge entfernt - im Groben entspricht das in etwas der Defragmentierung deiner Festplatte... Share this post Link to post
hallo wie gehts 0 Report post Posted August 17, 2005 okay, danke nochmals :) Share this post Link to post