Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
hallo wie gehts

Foren Hauptseite ist recht Langsam

Recommended Posts

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

oh das wusste ich noch gar nicht :P

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

ü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

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 by hallo wie gehts

Share this post


Link to post

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

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 by hallo wie gehts

Share this post


Link to post

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 by hallo wie gehts

Share this post


Link to post

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×