Zu viele Mysql-Anfragen ?
-
Hi,
ich entwickel gerade ein einem ziemlich komplexen Portal.
Jedoch muss ich leider festellen dass ca. 10 Abfragen pro seitenaufbau durchegführt werden müssen.Wieviele Abfragen können standard-server bzw. etwas schnellere pro sekunden bearbeiten ?
Ich benutzt PHP & Mysql.
Ciao
-
Kommt alles darauf an.
zB ist 10 mal ein index lookup garnichts.
während 10 mal ein join über 700 tabellen verdammt viel ist.nimm dir sachen wie zB apachebench, etc. und schau dir an, was dein server hergibt.
normalerweise sind 10 anfragen pro seite kein problem. idR kann man durch gutes caching diesen wert trotzdem reduzieren, meistens bringt das aber nicht viel.
zu beachten gilt hauptsächlich: kommen sich die queries in die quere? sprich: hast du selects und inserts auf die selben tabellen. das wäre dann etwas doof, weil select und insert einander blocken. solltest du nur selects haben und keine inserts, kannst du idR soviele sachen losschicken wie du willst.
-
Select & Insert anfragen treffen sich eigentlich relativ selten aneinander.
Select - Anfragen sind die Mehrheit aller Anfragen.
Ich habe jedoch die Bedenken, dass bei einem Online-status von ca. 500-1000 personen, die mysql datenbank trotzdem in die knie gezwungen wird.
das wären dann bei einem Zugriff 1.000 Personen * 10 Anfragen/person = 10.0000 Anfragen pro Sekunde.
Ich habe gelesen, dass eine mysql-db (bestenfalls) 400 Anfragen pro sekunde bearbeiten kann.
Das wären dann 10.000 / 400 = 25 sekunden.
das wäre schon eine relativ lange zeitperiode die ein user warten müsste ?
Ciao
-
Zeig mir eine Website die 1000 Zugriffe gleichzeitig bewältigen muss, ohne LoadBalancing zu verwenden.
Wenn du 100 Besucher am Tag (!) hast kannst du schon zufrieden sein.
-
JayJay schrieb:
das wären dann bei einem Zugriff 1.000 Personen * 10 Anfragen/person = 10.0000 Anfragen pro Sekunde.
1000 Anfragen pro Sekunde? Sicher dass das stimmt? Das wären, wenn wir nur von 10 stunden als Lastzeiten ausgehen (weil in der nacht der traffic nicht so stark ist) immerhin 36mio aufrufe pro tag. Kann ich eigentlich nur schwer glauben.
Wenn das aber der Fall sein sollte: cachen was das zeug hält. Jede seite 5 minuten zu cachen, kostet kaum aktualität, würde aber enorm was bringen.
weiters die user spezifischen sachen in der session cachen.
da würde es sich zB lohnen die Zend Platform zu kaufen. Die könnte da wunder wirken.
Ich habe gelesen, dass eine mysql-db (bestenfalls) 400 Anfragen pro sekunde bearbeiten kann.
Hängt wie gesagt von der komplexität der anfragen ab.
bei dieser besucherzahl würde ich sowieso clustern (muss man ja sogar, ich bezweifle nämlich, dass ein apache 3000 leute (wenn wir von etwa 3 sekunden pro script ausgehen, was bei großen dateien und langsamen verbindungen der user sogar wesentlich mehr werden kann ausgehen) gleichzeitig bedienen kann.
-
Denk das cachen der falsche Ansatz ist. Bei 36 MILL Anfragen steht ein Serverfarm bereit die man sich auch Leisten kann.
Dieser Wert ist sowieso wunschdenken. Die Pagecounts haben Seiten wie CNN etc.
-
Hi,
ich hab meine Mysql Klasse bereits soweit kompatible gemacht, dass die tabellen auf verschiedene mysql server aufgespaltet werden können.
Jedoch wollte ich auch eine akzeptable möglichkeit haben, das ganze über nur einen server laufen zu lassen.
Das Cachen der Seite ist so eine Sache. Da es ein Loginbereich gibt, d.h. viele Seiten individuell für jeden benutzter vorliegen ist das nicht so einfach.
Da müssten doch relativ viele Seiten gecacht werden.
-
JayJay schrieb:
Da müssten doch relativ viele Seiten gecacht werden.
und?
Speicherplatz ist ja nicht so teuer.