Zu viele Queries ?

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
JaneDoe
Beiträge: 230
Registriert: Sa 16.Jul, 2005 12:18

Zu viele Queries ?

Beitrag von JaneDoe »

Hallo,

ich habe grade festgestellt, dass das Betrachten eines Profiles bei mir im Forum ca 130 - 140 Queries
benötigt.

Verursacher ist der "most active in <ForumName>" Teil des Invision View Profile Mods.

Das ist freilich ne Menge.
Würde man sagen dass ist noch akzeptabel, so nach dem Motto : "alles unter 1000 Queries ist ok"

oder würdet ihr diesen speziellen Teil aus dem Mod ausbauen?

Grüsse
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Giga4000 »

Naja ... das ist schon etwas hoch !!!

Wenn ich bei mir ein Profil ansehe, habe ich 8 SQL Queries ...
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wenn Deine Datenbank unter der Last zusammenbricht, würde ich das schon ausbauen. Ist auch die Frage, wieviele User gleichezitig Profile ansehen ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
JaneDoe
Beiträge: 230
Registriert: Sa 16.Jul, 2005 12:18

Beitrag von JaneDoe »

Dann werd ich das ausbauen.
Zumal jetzt das Profilgästebuch dazukommt und dadurch in einigen Profilen ganz gut was los sein wird.

Grüsse
Dieser Satz kein Verb.
Darezettl
Beiträge: 589
Registriert: So 31.Jul, 2005 23:43

Beitrag von Darezettl »

Kann man sich den "Invision View Profile Mod" mal ansehen?
Bild
Life begins @ 1/1000
JaneDoe
Beiträge: 230
Registriert: Sa 16.Jul, 2005 12:18

Beitrag von JaneDoe »

Der Invision Teil im Profil sieht in etwa so aus. (ein User bei mir aus dem forum)
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Giga4000 »

Jo, der Invision View Profile Mod von AnthonyCoy ist wirklich gut !!!

Ich bin auf seiner Website auch Moderator, wenn du also irgendwelche fragen hast immer her damit ... ;)
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
JaneDoe
Beiträge: 230
Registriert: Sa 16.Jul, 2005 12:18

Beitrag von JaneDoe »

Ja ist er, bis auf die grosse Anzahl Queries eben.
Hab da bei ihm allerdings nichts zu gefunden. Im Prinzip müssten die Abfragen in einen Cache geschrieben werden, so
dass, wenn ein User zwischendurch z.B nicht gepostet hat, seine Daten nicht jedesmal extra neu errechnet werden.
Aber das übersteigt meine Fähigkeiten.

Grüsse
Dieser Satz kein Verb.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich frage mich, was bei dieser Anzeige so viele Queries verursacht ¢#
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
JaneDoe
Beiträge: 230
Registriert: Sa 16.Jul, 2005 12:18

Beitrag von JaneDoe »

kann ich dir sagen. Die Anzeige : "Am meisten aktiv in <Forum>" plus die anzahl der Beiträge in diesem "meist aktiven" Forum wird durch diese Funktion in der functions.php ermittelt.

Code: Alles auswählen

function get_forum_most_active($user)
{
	global $db, $userdata;

	if ( intval($user) == 0 )
	{
		$user = trim(htmlspecialchars($user));
		$user = substr(str_replace("\\'", "'", $user), 0, 25);
		$user = str_replace("'", "\\'", $user);
	}
	else
	{
		$user = intval($user);
	}

	$sql_forum = "SELECT forum_id, forum_name FROM " . FORUMS_TABLE . "
		ORDER BY forum_id";
	if ( !($result = $db->sql_query($sql_forum)) )
	{
		message_die(GENERAL_ERROR, 'Could not obtain forums list', '', __LINE__, __FILE__, $sql_forum);
	}

	$most_active_id = array();
	while ( $line = $db->sql_fetchrow($result) ) 
	{
		$most_active_id[] = $line['forum_id'];
		$most_active_name[$line['forum_id']] = $line['forum_name']; 
	}
	$db->sql_freeresult($result);

	$count_most_active_id = count($most_active_id);

	$most_active_posts = 0;
	$num_result = 0;

	foreach ( $most_active_id as $i )
	{
		$is_auth = auth(AUTH_VIEW, $i, $userdata);
		if ( $is_auth['auth_view'] == 1 )
		{
			$sql_most = "SELECT *
				FROM " . POSTS_TABLE . " 
				WHERE forum_id = $i AND poster_id = $user";
			if ( !($result = $db->sql_query($sql_most)) )
			{
				message_die(GENERAL_ERROR, 'Tried obtaining data for a non-existent user', '', __LINE__, __FILE__, $sql_most);
			}

			if ( $db->sql_numrows($result) > $most_active_posts )
			{
				$most_active_posts = $db->sql_numrows($result);
				$most_active_foren_id = $i;
				$most_active_forum_name = $most_active_name[$i];
			}
		}
	}

	return array('forum_id' => $most_active_foren_id, 'forum_name' => $most_active_forum_name, 'posts' => $most_active_posts);
}
Lass ich diese Funktion weg, hab ich sofort 100 queries weniger.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Das schreit ja geradezu nach einer Optimierung! :eek:
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Querie im Querie. Das ist alles andere als sauber programmiert!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Giga4000 »

Okay ... ich habe dem Autor mal eine PN geschickt ^^

Könnte einer von euch den Code dann vielleicht mal verbessern ?

PHP ist nicht gerade meine stärke :!: ¦4
Zuletzt geändert von Giga4000 am Mo 13.Feb, 2006 19:59, insgesamt 2-mal geändert.
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Warten wir erstmal ab was der Autor sagt. :D
Abgesehen davon habe ich momentan den Kopf voll mit meinem eigenem Projekt.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Giga4000 »

[quote="AmigaLink - Mo 13.Feb, 2006 20:38";p="53760"]Warten wir erstmal ab was der Autor sagt. :D[/quote]

Ja, das kann etwas dauern. Der Autor ist 14 Jahre alt und wohnt in Kalifornien !!!

EDIT: Wenn man vom Teufel spricht :D :D

Also, ich soll euch sagen, dass er im Moment sehr beschäftigt ist und das er schon an Version 1.2 Arbeitet !!!

Er ist im Moment allerdings auch sehr beschäftigt ...
Zuletzt geändert von Giga4000 am Mo 13.Feb, 2006 20:49, insgesamt 2-mal geändert.
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dann warte, bis er die neue Version raus gebracht hat.
Bringt ja nichts, wenn wir jetzt anfangen zu optimieren, wenn er schon dabei ist ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Na wer sagt es denn?! :D
Bis zur Fertigstellung des 1.2 sind die 140 Queries wohl zu verkraften. ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Antworten