Abfrage für große Topics verbessern

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag von hagily »

Hallo!

Das erste was mit sofort ins auge Gesprungen ist, ist folgendes:
//-- mod : jumpbox -------------------------------------------------------------
//-- mod : spam topic ----------------------------------------------------------
//-- mod : print topic ---------------------------------------------------------
//-- mod : multivote -----------------------------------------------------------
//-- mod : gender --------------------------------------------------------------
//-- mod : attachmod -----------------------------------------------------------
//-- mod : categories hierarchy ------------------------------------------------
Und noch viele Andere (unnötige?) //......

Lösche docheinmal alles unnötige
Felix
Zuletzt geändert von hagily am 19.02.2006 17:53, insgesamt 1-mal geändert.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Kommentare werden vom PHP Parser ignoriert :-?
Zuletzt geändert von mgutt am 19.02.2006 17:54, insgesamt 2-mal geändert.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag von hagily »

mgutt hat geschrieben:Kommentare werden vom PHP Parser ignoriert :-?
Aber sie werden gelesen. Und das macht das Forum langsam. Ich glaube aber dass die geschwindigkeit davon nur unwesentlich beeinflusst wird.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Eben nicht. Sie werden ignoriert.

Siehe:
http://www.php-faq.de/q/q-stil-kommentare.html

:wink:
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Ich wurde gefragt was zu tun ist um die Abfrage zu beschleunigen.

suche in viewtopic.php nach:

Code: Alles auswählen

$sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, p.*,  pt.post_text, pt.post_subject, pt.bbcode_uid
	FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
	WHERE p.topic_id = $topic_id
		$limit_posts_time
		AND pt.post_id = p.post_id
		AND u.user_id = p.poster_id
	ORDER BY p.post_time $post_time_order
	LIMIT $start, ".$board_config['posts_per_page'];
und ersetze mit:

Code: Alles auswählen

//-- mod : speed up topic ------------------------------------------------------
//-- delete
/*
$sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, p.*,  pt.post_text, pt.post_subject, pt.bbcode_uid
	FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
	WHERE p.topic_id = $topic_id
		$limit_posts_time
		AND pt.post_id = p.post_id
		AND u.user_id = p.poster_id
	ORDER BY p.post_time $post_time_order
	LIMIT $start, ".$board_config['posts_per_page'];
*/
//-- add
// Pages
$total_pages = ceil($total_replies/$board_config['posts_per_page']); 
$on_page = floor($start / $board_config['posts_per_page']) + 1; 
if ($start > 100 && ($total_replies / 2) < $start) { 
    $reverse = TRUE; 
    $last_page_posts = $total_replies - ($board_config['posts_per_page'] * ($total_pages - 1)); 
}
// Reverse & Post Id's
$p_array = array(); 
if (isset($reverse)) { 
    $limit_string = ($total_pages == $on_page) ? $last_page_posts : ($last_page_posts + ($total_pages - $on_page - 1) * $board_config['posts_per_page'] ).','. $board_config['posts_per_page']; 
    $sql = "SELECT p.post_id FROM " . POSTS_TABLE . " p USE INDEX(topic_n_id) WHERE p.topic_id = $topic_id $limit_posts_time ORDER BY p.post_id DESC LIMIT $limit_string" ; 
} else { 
    $sql = "SELECT p.post_id FROM " . POSTS_TABLE . " p WHERE p.topic_id = $topic_id $limit_posts_time LIMIT $start, " . $board_config['posts_per_page']; 
}
if ( !($result = $db->sql_query($sql)) ) 
{ 
   message_die(GENERAL_ERROR, "Could not obtain post index information.", '', __LINE__, __FILE__, $sql); 
} 
while (list($p_id) = $db->sql_fetchrow($result)) { 
    $p_array[] = $p_id; 
} 
$post_index = implode(",",$p_array);
// Pull the data
$sql = "SELECT pt.post_sub_title, u.username, u.user_id, u.user_posts, u.user_from, u.user_firstname, u.user_ebayname, u.user_car, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, u.user_gender, p.*,  pt.post_text, pt.post_subject, pt.bbcode_uid
   FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt 
   WHERE p.post_id in ($post_index) 
      AND pt.post_id = p.post_id 
      AND u.user_id = p.poster_id 
   ORDER BY p.post_time $post_time_order";
//-- fin mod : speed up topic --------------------------------------------------
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

Super, aber ab wann ist diese Änderung sinnvoll (ab wieviel Posts/Topic)?
und wirkt sich das negativ auf kleine Topics aus?
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Nein, negative Eigenschaften für kleine Topics habe ich bisher nicht festgestellt. Ab ca. 5.000 Antworten pro Topic sollte man diese Änderung berücksichtigen. Vorher bringt sie wahrscheinlich nichts.

Aber das muss man selbst man analysieren.

Mach einfach mal einen Tag lang Zeitanalyse für die alte und für die neue Abfrage. Ich habe in jedem Fall durchweg bessere Ergebnisse erreicht.

Im Moment macht mir nur die posting.php Probleme. Da muss ich mal schauen, warum die nicht mag ;)
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

Danke!!

Ist es bei euch auch so (weil ich gerade posting.php lese), daß das Absenden eines Postings immer ca. 2-3x länger dauert, als alle anderen Abfragen?
Ist das, weil es einfach länger dauert, etwas in die DB zu SCHREIBEN und weil es zugleich schon viele Postings sind?
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Jo, wenn schon viele Antworten getätigt wurden, scheint das weitere Antworten immer länger zu dauern. Bei mir ist es bei größerer Auslastung sogar so, dass das bis zum Absturz führt. (Memory Overrun).
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

Aha OK, dachte mir schon soetwas - ev. gibt es auch hier irgend wann einmal eine Lösung *hoff*
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“