Project

General

Profile

Fehler #460

Feature #201: Forum

Forum: Datenbankabfragen reduzieren

Added by -, blackcoder about 2 years ago. Updated about 1 year ago.

Status:
Erledigt
Priority:
Normal
Assignee:
-
Start date:
08/13/2017
Due date:
% Done:

100%

Estimated time:

Description

http://127.0.0.1:8080/index.php/forum/showtopics/index/forumid/2

461 statements were executed, 438 of which were duplicated, 23 unique

Hier kann man eventuell etwas optimieren.

History

#2

Updated by -, blackcoder over 1 year ago

  • Parent task set to #201
#3

Updated by -, blackcoder about 1 year ago

  • Status changed from Neu to In Bearbeitung

getPostByTopicId()
https://github.com/IlchCMS/Ilch-2.0/blob/v2.1.13/application/modules/forum/mappers/Post.php#L93
https://github.com/IlchCMS/Ilch-2.0/blob/v2.1.13/application/modules/forum/mappers/Post.php#L100

ToDo:
  • Pro Benutzer aktuell zwei Abfragen. Kann leicht auf eine Abfrage reduziert werden.
  • Benutzer-Cache erstellen damit für jeden Benutzer pro Thema nur einmal eine Abfrage gemacht wird.
  • Prüfen ob die Nutzung dieser Funktion an den aktuellen Stellen überhaupt nötig ist.
  • Name der Funktion eventuell anpassen. getPostsByTopicId()

Beispiel:
index.php/forum/showtopics/index/forumid/2
Standardthema + Thema mit 400 Beiträgen
Abfragen: 2105
memory: 9,85 MB
request duration: ~840 ms

application\modules\forum\controllers\Edittopic.php (1 hit)
Line 70: $posts = $postMapper->getPostByTopicId($topic);

application\modules\forum\controllers\Showposts.php (1 hit)
Line 38: $posts = $postMapper->getPostByTopicId($topicId, $pagination);

application\modules\forum\mappers\Topic.php (2 hits)
Line 267: $posts = $postMapper->getPostByTopicId($id);

application\modules\forum\views\showactivetopics\index.php (1 hit)
Line 36: getPostByTopicId($topic->getId()) ?>

application\modules\forum\views\shownewposts\index.php (1 hit)
Line 34: getPostByTopicId($topic->getId()) ?>

application\modules\forum\views\showtopics\index.php (1 hit)
Line 63: getPostByTopicId($topic->getId()) ?>

application\modules\forum\views\Showunansweredtopics\index.php (1 hit)
Line 34: getPostByTopicId($topic->getId()) ?>

#4

Updated by -, blackcoder about 1 year ago

https://github.com/IlchCMS/Ilch-2.0/commit/6d183550fe2c431f3447e35a969c0e7433f5275d

ToDo:
  • Prüfen ob die Nutzung dieser Funktion an den aktuellen Stellen überhaupt nötig ist.
  • Name der Funktion eventuell anpassen. getPostsByTopicId()

Beispiel (nachher):
Abfragen: 503
memory: 3,24 MB
request duration: ~615 ms

#5

Updated by -, blackcoder about 1 year ago

  • Status changed from In Bearbeitung to Erledigt
  • % Done changed from 0 to 100

https://github.com/IlchCMS/Ilch-2.0/commit/b85aa07c37a22224c6395c4971d9b803fba4b9d0
https://github.com/IlchCMS/Ilch-2.0/commit/d8cf4619fc2596d0552e6395c86931465abba2fb

Beispiel (nachher):
Abfragen: 134
memory: 1,88 MB
request duration: ~275 ms

Mit den Änderungen konnte ich auch an diversen anderen Stellen im Forum die Abfragen reduzieren.

Dieses Ticket sehe ich jetzt mal als erledigt an.

Also available in: Atom PDF