Hallo zusammen
Ich kenne mich im Bereich der Geschwindigkeit und Ressourcenoptimierung nicht so aus. Deshalb meine Frage:
Ist es beim wechseln auf eine andere Seite schneller einen Array zu übergeben oder einen neuen SQL auf die DB abzusetzen?
Ich denke mal das mit dem Array ist schneller, aber wie gesagt ich kenne mich da nicht so aus...
Vielen Dank für die Antworten
Gruss Twips
Geschwindigkeitsfrage...
gepostet vor 17 Jahre, 4 Monate von Twips
gepostet vor 17 Jahre, 4 Monate von Agmemon
Ich vermute mal, du meinst mit Seitenwechsel den Aufruf einer neuen URL?
Da wird sich die Geschwindigkeitsfrage vermutlich gar nicht erst stellen, weil das mit dem Array einfach umpraktikabel ist. Die Daten, die Du übergeben möchtest, werden ja irgendwo her kommen, also wirst Du irgendwo die SQL Abfrage so und so haben. Dann musst Du das Array serialisieren und an den Client ausliefern. Durch einen Klick auf einen Link oder ähnliches, müssen die serialisierten Daten wieder an den Server geliefert werden. Dort muss man sie dann parsen, um wieder ein Array zu erhalten.
Das wird vermutlich keinen Sinn machen. Also Daten aus der DB holen, was auch noch ein paar andere Vorteile hat.
Da wird sich die Geschwindigkeitsfrage vermutlich gar nicht erst stellen, weil das mit dem Array einfach umpraktikabel ist. Die Daten, die Du übergeben möchtest, werden ja irgendwo her kommen, also wirst Du irgendwo die SQL Abfrage so und so haben. Dann musst Du das Array serialisieren und an den Client ausliefern. Durch einen Klick auf einen Link oder ähnliches, müssen die serialisierten Daten wieder an den Server geliefert werden. Dort muss man sie dann parsen, um wieder ein Array zu erhalten.
Das wird vermutlich keinen Sinn machen. Also Daten aus der DB holen, was auch noch ein paar andere Vorteile hat.
gepostet vor 17 Jahre, 4 Monate von Nuky
Ich denke das solltest du eher aus Sicherheitsgründen tunlichst unterlassen..
gepostet vor 17 Jahre, 4 Monate von DrakeL
Der Aufwand würde sich nur lohnen, wenn das Statement sehr komplex ist und eine lange Abfragezeit besitzt und die Daten sich nie bzw. selten ändern und die Datenmenge nicht zu groß ist.
Vorteile:
- Es ist schneller, da Datenbankabfragen in der Regel länger dauern als ein Array zu serialisieren/deserialisieren
Nachteile:
- Der Aufwand ist sehr hoch, da Abfragen musst ob Daten in Form des Arrays vorhanden sind, ansonsten musst Sie aus der Datenbank holen.
- Die Daten bleiben über mehrere Aufrufe konstant, egal ob diese zwischenzeitlich in der Datenbank geändert wurden. Daher kann es passieren, dass mit veralteten Daten arbeitest.
Ich denke die Nachteile sollten den kleinen Geschwindigkeitsvorteil erschlagen. Wenn Geschwindigkeitsprobleme hast bei Abfragen, würde ich eher an der Abfrage selbst optimieren (fragst vielleicht Spalten ab, die du gar nicht brauchst? Joinst du über Tabellen die du nicht brauchst? Joinst du über Tabellen und verknüpfst Spalten die keinen PK oder Index besitzen?).
PS: Wie schon gesagt wurde ist es sehr unsicher den serialisierten Array beim Client abzulegen/zum Client zu übertragen. Daher wenn es speicherst, dann in einer Session oder anderen serverseitigen Lösungen.
Vorteile:
- Es ist schneller, da Datenbankabfragen in der Regel länger dauern als ein Array zu serialisieren/deserialisieren
Nachteile:
- Der Aufwand ist sehr hoch, da Abfragen musst ob Daten in Form des Arrays vorhanden sind, ansonsten musst Sie aus der Datenbank holen.
- Die Daten bleiben über mehrere Aufrufe konstant, egal ob diese zwischenzeitlich in der Datenbank geändert wurden. Daher kann es passieren, dass mit veralteten Daten arbeitest.
Ich denke die Nachteile sollten den kleinen Geschwindigkeitsvorteil erschlagen. Wenn Geschwindigkeitsprobleme hast bei Abfragen, würde ich eher an der Abfrage selbst optimieren (fragst vielleicht Spalten ab, die du gar nicht brauchst? Joinst du über Tabellen die du nicht brauchst? Joinst du über Tabellen und verknüpfst Spalten die keinen PK oder Index besitzen?).
PS: Wie schon gesagt wurde ist es sehr unsicher den serialisierten Array beim Client abzulegen/zum Client zu übertragen. Daher wenn es speicherst, dann in einer Session oder anderen serverseitigen Lösungen.
gepostet vor 17 Jahre, 4 Monate von Twips
Ok, vielen Dank für eure Erklärungen. Habt mir damit sehr geholfen.
Einen schönen Tag noch...
Gruss Twips
Einen schönen Tag noch...
Gruss Twips