Zur Boardunity Forenstartseite
  #1  
Alt 16.06.2005, 08:52
eMail noch nicht verifiziert
 
Registriert seit: 05.2005
Beiträge: 10

array vs. Datenbank Abfrage


Hi,

ich arbeite gerade an einem einfachen Mitglieder System. Jetzt ist es so das wenn ich hier und da Geburtstage, Statistiken, ect. auslese die Datenbank Abfragen in die Höhe gehen...

Jetzt habe ich mir überlegt einmal alle Mitglieder aus der Datenbank ab zu fragen und in einem array zu speichern. Hier kann ich nun einfach für weitere Funktionen alles auslesen. So das ist bei 100 Mitgliedern ok, aber gehen wir mal davon aus das sagen wir mal 1000 Besucher gleichzeitig onlien sind und im Cachen ca. 10.000 Mitglieder gespeichert sind(Beispiel). Bringt es nun Performence einbusen gegenüber den einzelen Abfragen?
  #2  
Alt 16.06.2005, 10:47
Benutzerbild von exe
exe exe ist offline
titellos
 
Registriert seit: 07.2003
Ort: München
Beiträge: 888
Wenn die Benutzertabelle mal 10.000 Mitglieder hat, dann bringt das sicher Performanceverluste. Ich würde eher versuchen die Abfragen zu minimieren ohne groß Daten zwischenzuspeichern.

Die Berechnung ob ein Mitglied Geburtstag hast kannst du auch von der Datenbank erledigen lassen, dafür musst du nicht alle Mitglieder auslesen und der Reihe nach in PHP prüfen.

Trotzdem: je mehr Funktionen du anbietest desto mehr Datenbankabfragen brauchst du, um die benötigten Informationen zu generieren. Deswegen würde ich aber nicht die Datenbank komplett auslesen und in PHP weiterverarbeiten sondern diese Verarbeitung von der Datenbank erledigen lassen, die kann das nämlich schneller.

__________________
Johannes Klose
Calitrix Wiki - Wiki auf Basis von PHP und MySQL
  #3  
Alt 17.06.2005, 15:45
Benutzerbild von LonelyPixel
UNB-Entwickler
 
Registriert seit: 01.2004
Ort: Erlangen
Beiträge: 974
Die Frage, was schneller ist, hat sich mir auch schon ein paar Mal gestellt. Die einfache Antwortet lautet: Probier es aus. Genau vorhersagen kann man das wohl nicht. Je nach exakter Implementierung (mal ist mehr Verarbeitung erforderlich, mal weniger) ist das eine oder das andere schneller. Wenn du keinen Aufwand scheust, dein Programm so schnell wie möglich zu machen, kannst du ja beide Methoden bereitstellen und je nach Anzahl der (zu erwartenden) Datensätze und Laufzeit der letzten Ausführung(en) eine der beiden auswählen.

__________________
Yves Goergen
Softwareentwicklung, Fotografie, Webhosting, UNB Components (in Arbeit)
  #4  
Alt 18.06.2005, 10:43
eMail noch nicht verifiziert
 
Registriert seit: 05.2005
Beiträge: 10
Hi,

ich habe es gestern abend einmal ausprobiert.
Ich habe also 10.000 User erstellt. Beim ersten Versuch habe ich alle in einem Array geladen und 4 mal mehrere Daten daraus abgefragen (Persönliche Daten, Neuste Mitglieder, Geburtstage, Aktuell Online). Man hat deutlich gemerkt das es langsamer wird.

Beim zweiten Versuch habe ich die 4 Sachen jeweils von der DB abgefragen und siehe da es geht um einiges schneller.

Ja dann bleibe ich bei den DB Abfragen, ausserdem stimmt auch das was exe sagt, ich kann so einige Sachen mir schon vom mySQL Server "berechnen" lassen.

  #5  
Alt 18.06.2005, 21:14
Benutzerbild von LonelyPixel
UNB-Entwickler
 
Registriert seit: 01.2004
Ort: Erlangen
Beiträge: 974
Ach ja, du kannst natürlich auch versuchen, im Voraus rauszufinden, welche Daten du brauchen wirst, z.B. eine Liste von User-IDs, zu denen du den Namen brauchst. Dann kannst du diese schneller mit einer einzigen DB-Abfrage abrufen, z.B. mit SELECT ... WHERE id IN (1, 2, 3, 6, 10); Das beschleunigt das Verfahren dann noch weiter.

__________________
Yves Goergen
Softwareentwicklung, Fotografie, Webhosting, UNB Components (in Arbeit)
Antwort


Stichworte
-

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Konzept: Speichern von geparsten Beiträgen Gérome Entwicklung und Konzeption sozialer Software 37 23.08.2005 20:32
Datenbank wiederherstellen (Invision Board) bseQ Forensoftware 2 17.06.2004 09:13
Datenbank sprunghaft angewachsen Winters Programmierung und Datenbanken 4 07.01.2004 19:49
Datenbank sichern Marty Programmierung und Datenbanken 9 31.07.2003 15:24






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25