Zu viele Queries ?
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!
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!
Zu viele Queries ?
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
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
Naja ... das ist schon etwas hoch !!!
Wenn ich bei mir ein Profil ansehe, habe ich 8 SQL Queries ...
Wenn ich bei mir ein Profil ansehe, habe ich 8 SQL Queries ...
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
phpBB MODs: Click Here
- oxpus
- Administrator
- Beiträge: 28737
- Registriert: Mo 27.Jan, 2003 22:13
- Wohnort: Bad Wildungen
- Kontaktdaten:
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!
-={ 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!
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 ...
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
phpBB MODs: Click Here
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
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.
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.
Lass ich diese Funktion weg, hab ich sofort 100 queries weniger.
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);
}
Das schreit ja geradezu nach einer Optimierung!
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________
Kein Support per PM, ICQ oder eMail!!![/center]
______________________________________
Kein Support per PM, ICQ oder eMail!!![/center]
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
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
phpBB MODs: Click Here
Warten wir erstmal ab was der Autor sagt.
Abgesehen davon habe ich momentan den Kopf voll mit meinem eigenem Projekt.
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]
______________________________________
Kein Support per PM, ICQ oder eMail!!![/center]
[quote="AmigaLink - Mo 13.Feb, 2006 20:38";p="53760"]Warten wir erstmal ab was der Autor sagt. [/quote]
Ja, das kann etwas dauern. Der Autor ist 14 Jahre alt und wohnt in Kalifornien !!!
EDIT: Wenn man vom Teufel spricht
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 ...
Ja, das kann etwas dauern. Der Autor ist 14 Jahre alt und wohnt in Kalifornien !!!
EDIT: Wenn man vom Teufel spricht
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
phpBB MODs: Click Here
- oxpus
- Administrator
- Beiträge: 28737
- Registriert: Mo 27.Jan, 2003 22:13
- Wohnort: Bad Wildungen
- Kontaktdaten:
Dann warte, bis er die neue Version raus gebracht hat.
Bringt ja nichts, wenn wir jetzt anfangen zu optimieren, wenn er schon dabei ist
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!
-={ 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!
Na wer sagt es denn?!
Bis zur Fertigstellung des 1.2 sind die 140 Queries wohl zu verkraften.
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]
______________________________________
Kein Support per PM, ICQ oder eMail!!![/center]