- Affected Version
- WoltLab Suite 5.3
Moin,
bei uns tritt das Phänomen auf, dass beim Aufruf der Forenseite unterschiedliche, teilweise erhebliche Ladezeiten je User auftreten. Wir haben mittlerweile herausgefunden, dass diese Ladezeiten im Zusammenhang mit den Boxen "Heiße Themen" und "Letzte Beiträge" zusammenhängen.
Die Ladezeiten sind deutlich erhöht, wenn ein User viele Beiträge in Themen geschrieben hat, welche in den Boxen angezeigt werden.
Beispiel:
Ein User hat in einem Thema X 1.100 Beiträge geschrieben. In dem Thema sind noch 15.000 weitere Beiträge. Das Thema hat rund 500.000 Aufrufe. Die Datenbankabfrage die zur Box "Letzte Beiträge" gehört dauert für ihn 17,3 Sekunden.
Ein anderer User, der im Thema X 50 Beiträge geschrieben hat erzeugt eine Datenbankabfrage die ungefähr eine Sekunde dauert.
Das Problem tritt nur auf, wenn die Box aktiviert ist und das entsprechende Thema dort aufgelistet wird.
Das gleiche Problem besteht auch für die Box "Heiße Themen" (dort hat es bei dem User aus dem Beispiel rund 18 Sekunden gedauert).
Wir haben zur Identifizierung des Problems den Debug- und Benchmarkmodus aktiviert und dabei sind diese Werte herausgekommen.
(SQL Query) SELECT DISTINCT post.userID AS ownPosts,tracked_visit.visitTime,tracked_board_visit.visitTime AS boardVisitTime,user_object_watch.watchID, user_object_watch.notification,like_object.cachedReactions,moderation_queue.queueID AS reportQueueID, thread.* FROM wbb1_thread thread LEFT JOIN wbb1_post post ON (post.threadID = thread.threadID AND post.userID = xxxxxxxx) LEFT JOIN wcf1_tracked_visit tracked_visit ON (tracked_visit.objectTypeID = 209 AND tracked_visit.objectID = thread.threadID AND tracked_visit.userID = xxxxxxxx) LEFT JOIN wcf1_tracked_visit tracked_board_visit ON (tracked_board_visit.objectTypeID = 208 AND tracked_board_visit.objectID = thread.boardID AND tracked_board_visit.userID = xxxxxxxx) LEFT JOIN wcf1_user_object_watch user_object_watch ON (user_object_watch.objectTypeID = 234 AND user_object_watch.userID = xxxxxxxx AND user_object_watch.objectID = thread.threadID) LEFT JOIN wcf1_like_object like_object ON (like_object.objectTypeID = 210 AND like_object.objectID = thread.firstPostID) LEFT JOIN wcf1_moderation_queue moderation_queue ON (moderation_queue.objectTypeID = 232 AND moderation_queue.objectID = thread.firstPostID AND moderation_queue.status <> 2 AND moderation_queue.status <> 3 AND moderation_queue.status <> 4) WHERE thread.threadID IN (?,?,?,?,?) ORDER BY ((((thread.replies + .1) * 50 + thread.views) * 1000000000000) / POWER(UNIX_TIMESTAMP() - thread.time, 1.5)) DESC,thread.time DESC
Execution time: 18.0145s
Wir haben besonders die Tabelle wcf1_tracked_visit im Verdacht.
Wir haben die Boxen erst einmal deaktiviert - in der Hoffnung, dass es eine Möglichkeit gibt oder geben wird um das Problem zu beheben.
Beste Grüße
dontonn
Life of German