Hier ein alltägliches Beispiel einer Page die ich unterhalte:
Anzeige einer Freundesliste
Der Ablauf:
Sämtliche Freundes ID's aus der freunde tabelle laden.
Zu sämtlichen freunden jeweils auser der user_details tabelle die namen laden, aus der user_bilder tabelle den profilbildnamen laden, aus der usertabelle den Zeitpunkt der letzten aktion und den loginstatus ermitteln um festzustellen ob der freund online ist.
Daten ausgeben.
Mir stellt sich nun die Frage inwiefern es nun sinnvoll ist Daten bereits in die Freundestabelle zu laden um mir ständig wiederkehrende Datanbankquerys zu ersparen.
Gelernt habe ich folgendes: Daten sollten in einer Datenbank nur ein mal gespeichert werden um Redundanzen zu vermeiden. Einige Redundanzen würden jedoch Leistungsgewinne erzielen.
Ein Beispiel bei der obigen Freundesliste. Angenommen ich speichere bei der Freundesfestlegung nun gleich den namen (der bereits in der user_details tabelle ist) in der tabelle freunde mit. Dieser zusätzliche Eintrag würde zwar einen minimalen mehraufwand bedeuten aber erspart mir jedes mal wenn eine Freundesliste geladen wird - was deutlich häufiger vorkommt als einen freund hinzufügen - ein komplettes query.
Meine Frage ist nun: Inwiefern machen solche Redundanzen Sinn um die Leistung zu steigern ? Welche Risiken entstehen durch solche Konstrukte ? Gibt es vielleicht jemanden der seine Erfahrungen posten kann ? Gibt es SQL konstrukte (hab mich da vor kurzem in Join etwas eingelesen) mit denen ich ohne sicherheitsrisiken Abfragen aus mehreren tabellen durchführe?
Danke für eure Mühe,
Exon
Anzeige einer Freundesliste
Der Ablauf:
Sämtliche Freundes ID's aus der freunde tabelle laden.
Zu sämtlichen freunden jeweils auser der user_details tabelle die namen laden, aus der user_bilder tabelle den profilbildnamen laden, aus der usertabelle den Zeitpunkt der letzten aktion und den loginstatus ermitteln um festzustellen ob der freund online ist.
Daten ausgeben.
Mir stellt sich nun die Frage inwiefern es nun sinnvoll ist Daten bereits in die Freundestabelle zu laden um mir ständig wiederkehrende Datanbankquerys zu ersparen.
Gelernt habe ich folgendes: Daten sollten in einer Datenbank nur ein mal gespeichert werden um Redundanzen zu vermeiden. Einige Redundanzen würden jedoch Leistungsgewinne erzielen.
Ein Beispiel bei der obigen Freundesliste. Angenommen ich speichere bei der Freundesfestlegung nun gleich den namen (der bereits in der user_details tabelle ist) in der tabelle freunde mit. Dieser zusätzliche Eintrag würde zwar einen minimalen mehraufwand bedeuten aber erspart mir jedes mal wenn eine Freundesliste geladen wird - was deutlich häufiger vorkommt als einen freund hinzufügen - ein komplettes query.
Meine Frage ist nun: Inwiefern machen solche Redundanzen Sinn um die Leistung zu steigern ? Welche Risiken entstehen durch solche Konstrukte ? Gibt es vielleicht jemanden der seine Erfahrungen posten kann ? Gibt es SQL konstrukte (hab mich da vor kurzem in Join etwas eingelesen) mit denen ich ohne sicherheitsrisiken Abfragen aus mehreren tabellen durchführe?
Danke für eure Mühe,
Exon

Kommentar