Für eine Website wie Reddit mit vielen Up / Down-Abstimmungen und vielen Kommentaren pro Thema, womit soll ich gehen?
Lighttpd / PHP oder Lighttpd / CherryPy / Genshi / SQLAlchemy?
und für die Datenbank, was wäre besser / am schnellsten MySQL (4.1 oder 5?) oder PostgreSQL?
Ich kann nicht mit der MySQL / PostgreSQL-Frage sprechen, da ich wenig Erfahrung mit Postgres habe, aber mein Masters-Forschungsprojekt handelte von leistungsstarken Websites mit CherryPy, und ich glaube nicht, dass Sie enttäuscht sein werden, wenn Sie es verwenden CherryPy für Ihre Website. Es kann leicht auf Tausende von gleichzeitigen Benutzern auf Standardhardware skaliert werden.
Natürlich könnte das gleiche für PHP gesagt werden, und ich kenne keine vernünftigen Benchmarks, die PHP und CherryPy Leistung vergleichen. Aber wenn Sie sich fragen, ob CherryPy eine hoch frequentierte Site mit einer großen Anzahl von Anfragen pro Sekunde bewältigen kann, ist die Antwort definitiv ja.
Das ideale Setup wäre das :
Kurz gesagt, nginx ist ein schneller und leichter Webserver / Front-Proxy mit einem einzigartigen Modul, mit dem Daten direkt aus <
All dies ist nicht nur auf Webseiten, sondern auch auf AJAX-Abfragen / -Antworten perfekt anwendbar.
in dem Artikel sind die "Zurück" -Server http, und sprechen speziell über Mischling. Es wäre noch besser, wenn der Rücken FastCGI und andere (schneller?) Rahmen wäre; aber es ist viel weniger kritisch, da das Nginx / Memcached-Team den größten Teil der Last absorbiert.
Beachten Sie, dass, wenn Ihr URL-Schema für den AJAX-Verkehr gut designed ist (REST ist am besten, IMHO), Sie den größten Teil der DB direkt in memcached setzen können, und jeder POST (der an die App übergeben wird) Cache.
In der DB-Frage würde ich sagen, PostgreSQL skaliert besser und hat eine bessere Datenintegrität als MySQL. Für eine kleine Site könnte MySQL schneller sein, aber von dem, was ich gehört habe, verlangsamt es sich beträchtlich, wenn die Größe der Datenbank wächst. ( Hinweis: Ich habe noch nie MySQL für eine große Datenbank verwendet, daher sollten Sie wahrscheinlich eine zweite Meinung über seine Skalierbarkeit erhalten. ) PostgreSQL skaliert jedoch definitiv gut und wäre eine gute Wahl für einen hohen Datenverkehr Website.
Ich brauche mehr Daten. Jeff hatte ein paar Artikel über die gleichen Probleme und die Antwort war zu warten, bis Sie ein Leistungsproblem haben.
um zu beginnen mit - wer hostet und was haben sie zur Verfügung? Was ist dein Talent Talent Fähigkeiten? Werden Sie eine externe Firma einstellen? Was empfehlen sie? brandneues Projekt mit einem Team, das bereit ist, ein neues Framework zu lernen?
Die zweite Sache ist, ein paar Mockups zu machen - wie wird die Schnittstelle funktionieren? Welche Daten muss geladen und persistiert werden? Die Idee ist, den Verkehr zwischen dem Web und Db-Seite nach unten zu halten. z.B. keine gesprächigen Seiten mit vielen Fragen. usw.
Sobald Sie eine bessere Vorstellung von den Datenanforderungen und dem Datenfluss haben, arbeiten Sie am Datenbankentwurf. Es gibt viele Regeln zu folgen, aber eine der besseren ist, Normalisierungsregeln zu folgen (ja, ich bin ein DB-Typ warum?)
Jetzt haben Sie ein paar Seiten aufgebaut - führen Sie Ihre Tests durch. Hast du ein Problem? Ja, schau jetzt was es ist. Page Serving oder db zieht? Messen Sie dann einen Handlungsablauf.