Anonym: Welche Datenbank verwenden?Hohe Anforderungen.Sprache wechseln

Hallo.

Meine Seite hat an die 3,9 Millionen Seitenzugriffe pro Tag.
Das heißt das dass 10 Millionen Datenbankabfragen pro Tag sind.

Ich habe 3 Millionen registrierte User.
Meine Tabellen sind optimiert und normalisiert. An den Abfragen lässt sich auch nicht mehr groß was verbessern.

Ich benutze immer noch MySQL und PHP.

Ich habe bereits genügend Server die auch gut konfiguriert sind.

Allerdings frage ich mich, ob es nicht vielleicht an der Zeit liegt, eine andere Datenbank und vielleicht eine andere Sprache zu verwenden als PHP.

Was schlagt ihr vor?
Eure Meinung.

MySQL, PostGreSQL, Oracle, Firebird, MSSQL, SQL-Lite(wohl kaum), MaxDB usw.

Liebe Grüße
Anonym aus verschiedenen Gründen

  1. Ich kenne nicht alle Features der genannten DBMS, ich würde aber sicherstellen dass das eingesetzte folgende Features bietet:
    Triggers, Stored Procedures, Funktionen, Sequenzen, Auditing, grosse Datenbankgrössen

    Wenn du Werbung schaltest sind Kosten für dich bei deinen Hits ja ein kleines Problem ;)

    Ich denke die Technologie ist geschmackssache. Denke aber dass ein MVC-Design angebracht ist. Ich persönlich tendiere zu ASP.NET da dir viel Arbeit mit Einsatz eines Frameworks abgenommen wird. Natürlich gibt es auch in anderen Bereichen Frameworks (Struts, Mojavi etc) Wobei ich einfach mal behaupte das dir .NET am meisten vorgefertigte Funktionalität bietet.

    Gruss Pete

    1. Moin!

      Ich kenne nicht alle Features der genannten DBMS, ich würde aber sicherstellen dass das eingesetzte folgende Features bietet:
      Triggers, Stored Procedures, Funktionen, Sequenzen, Auditing, grosse Datenbankgrössen

      Das sind zwar alles nette Features, aber nach meiner Auffassung helfen sie lediglich dabei, einen höheren Abstraktionsgrad herzustellen - sind aber bei der Performance unter Umständen eher hinderlich.

      Ich denke die Technologie ist geschmackssache. Denke aber dass ein MVC-Design angebracht ist. Ich persönlich tendiere zu ASP.NET da dir viel Arbeit mit Einsatz eines Frameworks abgenommen wird. Natürlich gibt es auch in anderen Bereichen Frameworks (Struts, Mojavi etc) Wobei ich einfach mal behaupte das dir .NET am meisten vorgefertigte Funktionalität bietet.

      Hehe, Werbeshow für Microsoft. ;)

      Du verdrängst, dass die Reimplementierung einer bestehenden Applikation in einer neuen Sprache ein extrem hoher Aufwand ist. Diesen Schritt zu gehen sollte man erst entscheiden, wenn alle Alternativen ausgereizt sind, und die Wachstumsrate der Nutzung einem dafür einigermaßen Zeit gibt.

      Gerade für PHP gibt es alle möglichen Beschleunigungsmöglichkeiten, die die Skripte nicht mehr pro Request erst in Interpretercode übersetzen, sondern dieses Ergebnis im Zwischenspeicher halten. Ebenso kann man auch den Webserver wechseln - Apache ist zwar gut und verbreitet, aber auch etwas langsam, wenn man ihn z.B. mit lighttpd vergleicht.

      All das kann aber nur helfen, wenn so eine Lösung ein existierendes Problem löst. Wenn hingegen die ganze Zeit nur auf eine Datenbank gewartet wird, würde diese Vorgehensweise keine Lösung darstellen.

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
      1. Hallo,

        All das kann aber nur helfen, wenn so eine Lösung ein existierendes Problem löst. Wenn hingegen die ganze Zeit nur auf eine Datenbank gewartet wird, würde diese Vorgehensweise keine Lösung darstellen.

        Da kann memcache ganz gut aushelfen, das netterweise auch ziemlich gut über mehrere Server skalierbar scheint.

        Jeena

  2. yo,

    Allerdings frage ich mich, ob es nicht vielleicht an der Zeit liegt, eine andere Datenbank und vielleicht eine andere Sprache zu verwenden als PHP.

    erst einmal feststellen, ob es zu performance problemen kommt und wenn ja, worin die ursache besteht. dann erst kann mich sich gedanken machen, wie man das problem behebt.

    Ilja

  3. Hi,

    genau ein solches Thema kursierte doch vor zwei bis vier Wochen hier schon mal, deswegen jetzt anonymer?

    Meine Tabellen sind optimiert und normalisiert. An den Abfragen lässt sich auch nicht mehr groß was verbessern.

    Das halte ich für ein billiges Gerücht von einem Anonymisten, also gegenstandslos.

    Für solche Fragen empfehle ich gern folgende Lektüre: http://www.highscalability.com.   ... welche u.a. den Beweis antritt, dass es nicht immer eines Orakels oder Yukon/Katmai bedarf. :)

    So long, Frank

  4. Udutahma!

    Ich benutze immer noch MySQL und PHP.
    Allerdings frage ich mich, ob es nicht vielleicht an der Zeit liegt, eine andere Datenbank und vielleicht eine andere Sprache zu verwenden als PHP.

    PostGreSQL ist mir vor einiger Zeit empfohlen und in höchsten Tönen gelobt worden, aber ich habe es noch nicht ausprobiert.
    Bzgl. der Sprache kannst Du Performance gewinnen, wenn Du zu einer komplilierten Sprache wechselst (z.B. C++, D) und nicht mehr bei jedem Aufruf den Interpreter rödeln läßt. Es gibt aber IIRC auch für PHP Caching-Mechanismen, die die Performance steigern sollen.

    Als allererstes schließe ich mich aber mal Iljas Frage an: Gibt es denn schon akute Probleme (oder sind sie zumindest absehbar)? Wenn nicht: Never touch a running system!

    Viele Grüße vom Længlich