php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.09.2011, 13:07  
Neuer Benutzer
 
Registriert seit: 20.07.2011
Beiträge: 20
PHP-Kenntnisse:
Fortgeschritten
SynapticPHP zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Datenbank-abfrage Optimierung

Hallo Leute,

dies ist nicht wirklich ein konkretes problem, allerdings würde ich gern mal die Meinung bzw einen möglichen (gescheiten) Lösungsansatz von Programmierern hören, die damit schon Erfahrungen gemacht haben.

Ich erstelle momentan eine eigene Ranking Seite für Spiele und mir stellt sich folgende Frage:

Wir gehen davon aus, das wir massive Seitenzugriffe haben ( 400k / Tag )

Macht es denn wirklich Sinn die Daten einer Seite (50 Datensätze mit je rund 20 Information -> groß teils varchar / text aber auch ein paar Integer Daten)
nicht mit jedem Seitenaufruf aus der Datenbank abzufragen, sondern zbsp aller 1h die Informationen in eine andere Quelle zu transferieren -> zbsp eine .txt Datei und die Daten daraus zu lesen ?

Wenn es Sinn ergibt bzw die Performance steigern kann, wie stell ich das am besten an ? Habt ihr Ideen/Ratschläge oder ist das sowieso Quatsch ?

MFG Syn
SynapticPHP ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.09.2011, 13:15  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Sowas nennt man Cachen. Das was - wenn überhaupt - am Meisten Sinn macht ist das Cachen der bereits fertig generierten Webseite. Dann am besten auch so, dass sie direkt statisch als HTML vorliegt. Damit umgeht man komplett das PHP und alle dann notwendigen Zugriffe und für den Apache ist es ein simpler Dateitransfer. Sinn machen kann das schon.
Das Zwischenspeichern in eine TXT kanjn Sinn machen. In vielen Fällen macht das aber wenig Sinn, wenn das Parsen und Analysieren der TXT-Datei mehr Overhead bedeutet als der Zugriff auf die Datenbank. Eine generelle Antwort gibt es auf Performance-Fragen jedoch nie. Die Antwort kann durchaus je nach Datenkonstellationen mal so und mal anders ausfallen.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist gerade online   Mit Zitat antworten
Alt 29.09.2011, 13:29  
Neuer Benutzer
 
Registriert seit: 20.07.2011
Beiträge: 20
PHP-Kenntnisse:
Fortgeschritten
SynapticPHP zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Nunja, das Caching mit MYSQL kenn ich schon, allerdings find ich das nicht Optimal.
Sicher ist die abfrage beim 2.mal um einiges schneller, aber ich hoffte es geht noch besser.

Das fertige generieren ist eine Möglichkeit, allerdings hatte ich nicht vor rund 30 000 seiten zu generieren.
Pro Spiel werden im Durchschnitt schon 300 Server angemeldet(bei einigen auch mehr), diese müssen im jeweiligem Ranking, der
eigenen Site Statistik und im ControlPanel auftauchen.

Es sind 10 Kategorien mit ca 30 Spielen geplant und das erstellen der HTML Files stell ich mir auch sehr
Performancelastig vor bei solch einer enormen Anzahl von Seiten.

Schonmal danke für die Antwort.
SynapticPHP ist offline   Mit Zitat antworten
Alt 29.09.2011, 13:52  
Erfahrener Benutzer
 
Registriert seit: 23.08.2009
Beiträge: 241
PHP-Kenntnisse:
Fortgeschritten
MasterD wird schon bald berühmt werden
MasterD eine Nachricht über ICQ schicken
Standard

Die Seite wird bei jedem Aufruf geparst und im cache anschließend zwischengespeichert, du musst dazu nicht alle seiten auf einmal generieren.

Lies dir mal noch ein paar sachen dazu durch
MasterD ist offline   Mit Zitat antworten
Alt 29.09.2011, 14:07  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Es gibt beispielsweise die Möglichkeit, die Seiten als HTML abzuspeichern und (so sie nicht existieren) per htaccess redirect auf ein PHP-Script zu verweisen, die sie berechnet und wiederum abspeichert. Beim Aktualisieren müsste man die Seiten dann nur löschen.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist gerade online   Mit Zitat antworten
Alt 29.09.2011, 14:39  
Neuer Benutzer
 
Registriert seit: 20.07.2011
Beiträge: 20
PHP-Kenntnisse:
Fortgeschritten
SynapticPHP zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Die Seite wird bei jedem Aufruf geparst und im cache anschließend zwischengespeichert, du musst dazu nicht alle seiten auf einmal generieren.

Lies dir mal noch ein paar sachen dazu durch
Wenn er sie bei jedem Aufruf parst, muss er doch auch bei JEDEM aufruf die Informationen besorgen oder verstehe ich da was falsch?
Das ist genau das was ich nicht will, weil sonst könnte ich ja auch mit nem PHP script jedes mal abfragen und echo <<< HTML - HTML;

Mir ist noch eine Idee bezüglich des MYSQL Caches gekommen.
Soweit ich weiß (?) werden die Daten bei der selben abfrage aus dem
Cache genommen, sofern sich nichts an den Daten geändert hat.

Nun kann ich (?) doch einfach dies so lassen, und einfach die neuigkeiten im 30 Minuten intervall erst in die Tabelle übertragen/aktualisieren.

Im Format:

Haupt Tabellen -> Ausgabe (Oft, Viele Datensätze)
Slave Tabelle -> Eingabe (Selten + wenige Daten)

Nun wir nur aller 30 Minuten - 1h die daten der Slave Tabelle auf die
eigentliche übertragen. Wäre das so Sinnvoll ?

Geändert von SynapticPHP (29.09.2011 um 16:09 Uhr).
SynapticPHP ist offline   Mit Zitat antworten
Alt 29.09.2011, 16:41  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Hilfe, ich werd ignoriert. Und MasterD hast du falsch verstanden. Er meinte sicher nicht den Browser-Cache Lies dir meinen letzten Beitrag von 14 Uhr nochmal durch.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist gerade online   Mit Zitat antworten
Alt 29.09.2011, 19:37  
Neuer Benutzer
 
Registriert seit: 20.07.2011
Beiträge: 20
PHP-Kenntnisse:
Fortgeschritten
SynapticPHP zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Ich weiß schon das kein Browser Cache gemeint war, nur ich denke für mein vorhaben eignet sich das Parsen nicht wirklich.
SynapticPHP ist offline   Mit Zitat antworten
Alt 29.09.2011, 19:39  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Ich habe nichts von parsen geschrieben.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist gerade online   Mit Zitat antworten
Alt 29.09.2011, 20:15  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Beim Cachen wird das Alter der hier HTML-Datei mit einbezogen. Also beim Aufruf der Seite nachschauen, ob HTML vorhanden und nicht älter als z.B. 20 min. Wenn ja, die HTML rausschleudern. Nur wenn die Seite nicht vorhanden ist oder zu alt, muß sie neu erstellt werden.
d.h. max alle 20 min genau 1x für jede Seite, wenn diese keiner aufruft gar nicht.
jspit ist offline   Mit Zitat antworten
Antwort


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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Datenbank Abfrage Wert aus Feld in anderes Feld schreiben Kia Datenbanken 3 26.05.2011 10:08
Datenbank optimierung vogel123 Datenbanken 6 04.01.2011 19:01
[Erledigt] Abfrage eines voher festgelegeten Objektes in einer Datenbank marckannisgut PHP Tipps 2010 21 06.11.2010 17:03
Optimierung einer Abfrage eines Datensatzes samt Vorgänger und Nachfolger Sirke Datenbanken 7 28.04.2010 17:11
Verteilte Datenbank, Optimierung und MySQL Clusters? soundbear Datenbanken 10 16.04.2010 14:37
Datenbank Abfrage läuft sich tot :( dasdingo Datenbanken 9 22.02.2010 17:03
dynamische sql datenbank abfrage patrick146 JavaScript, Ajax und mehr 7 06.01.2010 16:10
[Erledigt] Daten von Datenbank NACH der Abfrage sortieren Supeede PHP Tipps 2009 21 10.04.2009 00:33
datenbank abfrage mit php xstefxanx PHP Tipps 2009 11 04.04.2009 18:33
[Erledigt] Datenbank abfrage geordnet anzeigen Octavian PHP Tipps 2009 10 22.03.2009 15:39
[Erledigt] Formular Problem (Datenbank Abfrage) halekin PHP Tipps 2009 2 14.01.2009 12:45
Zufallsbild -> Abfrage MySQL Datenbank nic_ Datenbanken 4 24.11.2008 12:43
OOP - Datenbank Abfrage ... 7Style PHP Tipps 2008 5 13.02.2008 13:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenbank abfrage where optimierung, optimierung abfrage datenbank, abfragenoptimierung

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:10 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum