Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Wie mehrere Foren realisieren? (https://www.delphipraxis.net/105844-%5Bphp%5D-wie-mehrere-foren-realisieren.html)

TheMiller 31. Dez 2007 14:32


[PHP] Wie mehrere Foren realisieren?
 
Hallo,

ich habe vor, ein eigenes kleines (abgespecktes) Forum zu programmieren. Das Forum soll in eine Community eingebunden werden und jeder User darf ein Forum erstellen.

Meine Frage ist nun, wie ich das von der Struktur her realisiere. Angenommen viele User haben Foren mit vielen Einträgen. Irgendwann müsste doch die Posts- und Threadstabelle elend langsam werden.

Sollte man da jetzt für jedes Forum automatisch extra Tabellen anlegen oder gar extra Datenbanken? Oder ist MySQL in der Lage so riesen Tabellen schnell und effizient abzufragen, dass alles in eine Tabelle kann und nur durch eine Foren-ID getrennt wird. Wenn ja, wie schwer ist es, eine solche Tabelle zu optimieren?

Oder ist sowas sogar ganz anders möglich?

Danke Leute und guten Rutsch!

mkinzler 31. Dez 2007 14:35

Re: [PHP] Wie mehrere Foren realisieren?
 
Eigentlich sollte ein aktueller Datenbankserver das locker unterstützen

DeddyH 31. Dez 2007 14:36

Re: [PHP] Wie mehrere Foren realisieren?
 
Das ist doch auch nur eine Beziehung mehr (Thread -> Forum). Ich sehe da keine großen Performancebremsen, sofern ordentlich indiziert wird.

TheMiller 31. Dez 2007 14:40

Re: [PHP] Wie mehrere Foren realisieren?
 
Also praktisch nur die nötigen Tabellen einmal erstellen und via Forum-ID die Einträge und Einstellungen trennen? Das hört sich zu einfach an...

Achso: Indizierung!
Was packe ich denn jeweils in den Index? Nur die jeweiligen IDs (Forum-Id und Thread-ID etc.), oder auch Titel und Post-Datum? Und wie kann ich einen Index über mehrere Tabellen legen, zb bei Joins?

Wie erkenne ich eigentlich, dass eine Datenbank sehr stark beansprucht wird? Habt ihr Links für mich, in denen ich mal genau nachlesen kann, wie ich eine DB optimiere?

Danke

DeddyH 31. Dez 2007 14:43

Re: [PHP] Wie mehrere Foren realisieren?
 
In die Thread-Tabelle würde ich nur die Foren-ID als Fremdschlüssel aufnehmen. Darüber kannst Du weitere Daten zum Forum (falls benötigt) einfach dazujoinen.

mkinzler 31. Dez 2007 14:44

Re: [PHP] Wie mehrere Foren realisieren?
 
Je nach was du die Datensätze anforderst. Also mehrere Indizes.

TheMiller 31. Dez 2007 14:50

Re: [PHP] Wie mehrere Foren realisieren?
 
Also, wenn wir mal die Hauptseite als Beispiel nehmen:

Ich weis nicht, ob ich das gerade richtig verstenden habe:

Zitat:

Zitat von mkinzler
Je nach was du die Datensätze anforderst. Also mehrere Indizes.


Ich frage einmal die Threads-Tabelle mit "titel, antworten" ab und lege mir vorher einen Index drüber.
Dann frage ich irgendwo nochmal die Threads-Tabelle mit mehreren Infos ab und lege mir vorher diesen Index drüber: "titel, antworten, nachricht, directlink"

Jetzt habe ich ja titel und antworten doppelt in mehreren Indizes. Ist das richtig, oder unnötig?

mkinzler 31. Dez 2007 14:55

Re: [PHP] Wie mehrere Foren realisieren?
 
Das ist normal. Das DBMS verwendet den Index mit allen abgefragten Feldern

TheMiller 31. Dez 2007 15:00

Re: [PHP] Wie mehrere Foren realisieren?
 
Ok gut.

Also könnte ich für jede spezielle (größere) Abfrage eigene Indizes anlegen, vorausgesetzt, dass ich das Limit beachte. Richtig?

Kann ich das irgendwo mal ausführlich nachlesen? Die Doku bringt mich da nicht viel weiter. Komme mir beim Ausfragen hier grad ein bissl doof vor...

mkinzler 31. Dez 2007 15:02

Re: [PHP] Wie mehrere Foren realisieren?
 
Kommt darauf wie oft die Abfrage benötigt wird. Den Indizes haben auch den nachteil, Platz zu belegen und Inserts/Update/Deletes zu verlangsamen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:32 Uhr.
Seite 1 von 2  1 2      

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