#1
| |||
| |||
array vs. Datenbank AbfrageHi, 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
| ||||
| ||||
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
| ||||
| ||||
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
| |||
| |||
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
| ||||
| ||||
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) |
Stichworte |
- |
Ä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 21:32 |
Datenbank wiederherstellen (Invision Board) | bseQ | Forensoftware | 2 | 17.06.2004 10:13 |
Datenbank sprunghaft angewachsen | Winters | Programmierung und Datenbanken | 4 | 07.01.2004 20:49 |
Datenbank sichern | Marty | Programmierung und Datenbanken | 9 | 31.07.2003 16:24 |