Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wieso werden die Postzahlen in phpBB nicht errechnet (https://www.delphipraxis.net/76023-wieso-werden-die-postzahlen-phpbb-nicht-errechnet.html)

faux 28. Aug 2006 21:49


Wieso werden die Postzahlen in phpBB nicht errechnet
 
Hallo!

Wieso werden in phpBB eigentlich die Postzahlen hochgezählt und nicht per
SQL-Code:
SELECT COUNT(post_id)
FROM phpbb_posts
WHERE poster_id = 6243;
ermittelt? Ist das ein performance Grund oder ein Organisatorischer Grund?
Ich frage deswegen, weil ich in einer 4images Galerie die Kommentarzahl ermitteln will, und das mit dieser Zeile natürlich wesentlich einfacher ist. ;)

Grüße
Faux

Daniel 28. Aug 2006 21:56

Re: Wieso werden die Postzahlen in phpBB nicht errechnet
 
Ja, das ist einer der Fälle, in denen man Redundanz in Kauf nimmt und dafür einiges an Performance gewinnt. Es wäre Wahnsinn, jedesmal die Anzahl an Beiträgen zu ermitteln. Der Aufwand, diesen Counter einmalig nach dem Schreiben eines Beitrages zu pflegen, ist dratisch geringer.

Im Prinzip ist es eine Frage des Datenbank-Designs. Im Allgemeinen versucht man, Redundanzen zu vermeiden. Weniger wegen der Platz-Ersparnis, sondern mehr, damit man keine Informationen doppelt oder gar dreifach pflegen muss. In ausgewählten Situationen und wenn man sich darüber im Klaren ist, was man tut, kann man sich aus Gründen der Performance (siehe oben) dann doch für redundante Daten entscheiden und ist kann dann auch völlig legitim sein.

faux 28. Aug 2006 22:06

Re: Wieso werden die Postzahlen in phpBB nicht errechnet
 
Dachte ich mir fast. :( Hm... Ab wievielen Posts / User ist hier ein merklicher Unterschied? Hängt das von der Gesamtzahl der Postst / User zusammen, oder mit der Zahl der zu berechnenden? Also ist eine Aggregatfunktion langsamer, wenn die Ergebnismenge groß ist, oder wenn die Gesamtmenge der Datensätze der entsprechenden Tabelle sehr groß ist?

Grüße
Faux

alcaeus 28. Aug 2006 22:12

Re: Wieso werden die Postzahlen in phpBB nicht errechnet
 
Es gibt noch einen zweiten Grund:
Das phpBB unterstuetzt ein Pruning, also ein Loeschen von Themen, die in einer festgelegten Zeitspanne keine Antworten mehr erhalten haben. Beim Pruning wird der Beitragszaehler des Benutzers aber nicht veraendert, aus welchen Gruenden auch immer.

Einen Geschwindigkeitsunterschied beim Berechnen des Post-Counts merkt man immer, so richtig merken wirst du es ab (schaetzungsweie) ca. 5000 Benutzer und 20000 Beitraegen, dann wird es langsamer laufen als sonst, vor allem weil phpBB beim Anzeigen von Beitraegen jedes Mal die Details des Posters neu berechnet; dies wuerde auch auf den Beitragszaehler zutreffen, welcher bei manchen Themen fuer ein paar Benutzer auch ein paar Mal berechnet werden wuerde. Das phpBB ist in der Ansicht etwas...unoptimiert ;)

Greetz
alcaeus

faux 28. Aug 2006 22:35

Re: Wieso werden die Postzahlen in phpBB nicht errechnet
 
Zitat:

Zitat von alcaeus
Es gibt noch einen zweiten Grund:
Das phpBB unterstuetzt ein Pruning, also ein Loeschen von Themen, die in einer festgelegten Zeitspanne keine Antworten mehr erhalten haben. Beim Pruning wird der Beitragszaehler des Benutzers aber nicht veraendert, aus welchen Gruenden auch immer.

Und noch einen dritten:
Damit es die Leute, die sich einen MOD coden wollen, dass in manchen Foren nicht gezählt wird, leichter haben. :mrgreen:

Zitat:

Zitat von alcaeus
Einen Geschwindigkeitsunterschied beim Berechnen des Post-Counts merkt man immer, so richtig merken wirst du es ab (schaetzungsweie) ca. 5000 Benutzer und 20000 Beitraegen, dann wird es langsamer laufen als sonst, vor allem weil phpBB beim Anzeigen von Beitraegen jedes Mal die Details des Posters neu berechnet; dies wuerde auch auf den Beitragszaehler zutreffen, welcher bei manchen Themen fuer ein paar Benutzer auch ein paar Mal berechnet werden wuerde. Das phpBB ist in der Ansicht etwas...unoptimiert ;)

Okay, danke euch beiden für die Info.

Grüße
Faux


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz