ich habe gelegentlich grössere Probleme mit der mysql-Performance. In meinen PHP-Scripts krieg ich dann oft „too many connections“ oder sowas, wenn der Server grad behämmert wird
Was gibt es für bessere Lösungen?
Ich spiel sogar mit dem Gedanken statt in mysql meine Daten in vielen Textdateien zu speichern, das müsste doch ziemlich schnell sein oder was ist sonst empfehlenswert für ca. 2500 Datensätze in einer Tabelle.
Gibt es vielleicht wesentlich schnellere SQL-Server? (Oracle, postgreSQL, etc.?)
Du wirst nicht eine wirkliche bessere Lösung finden, ohne Dich etwas mehr einzuarbeiten. ICh habe mit MySQL noch nicht gearbeitet, weiß aber, daß es zwei Nachteile hat: Keine Tranaktionen und Table Locks. Ersteres brauchst Du nur, wenn Du weißt, was es ist, zweiteres sorgt bei steigender Zahl der Zugriffe für immer weniger Leistung.
Slashdot z.B. nutzt LAMP, baut aber Seiten nicht auf Anforderung auf, sondern statische Seiten alle paar Minuten (gemäß einem Posting, dem nicht widersprochen wurde).
Ich spiel sogar mit dem Gedanken statt in mysql meine Daten in
vielen Textdateien zu speichern, das müsste doch ziemlich
schnell sein oder was ist sonst empfehlenswert für ca. 2500
Datensätze in einer Tabelle.
Wichtig ist die Zahl der Zugriffe. Wenn Du so viele Seitenabrufe hast, daß MySQL in die Knie geht, solltest Du Deinen Chef darum bitten, eine Schulung besuchen zu können. Die Zahl der Einträge dürfte MySQL nicht beeindrucken, es ist angeblich sogar besonders schnell.
Gibt es vielleicht wesentlich schnellere SQL-Server? (Oracle,
postgreSQL, etc.?)
Oracle verbietet in den Lizenzbedingungen, Benchmarks zu fahren. Das klingt nicht so, als wäre es besonders schnell.
die von Dir beschriebenen Performanceprobleme sind wahrscheinlich nur auf ungeschickte Programmierung zurückzuführen.
Wir betreiben eine Suchmaschine mysql/php3 mit ca. 10 Mio. Pageviews!! im Monat, d.h. ca. 50 Mio. mysql-Queries.
Unsere Datenbanken haben 1mal 6 Mio. und 2mal 300 000 Einträge, die bei jeder Abfrage „live“ und gleichzeitig!! durchsucht werden.
Dabei müht sich mysql nicht sonderlich ab.
„too many connections“ kannst Du beheben, wenn Du als Startup-Parameter z.B. -O max_connections=256 (default=100, Zahl unlimitiert) angibst. Überhaupt solltest Du Dich mit diesen Parametern beschäftigen.
Wenn mysql die „richtige“ Datenbank und nicht den Index absuchen muss, wird es richtig langsam. Dies kann aber durch entsprechende SQL-Programmierung umgangen werden.
Mysql, korrekt programmiert ist um ein Vielfaches schneller als andere, die z. T. massiv Geld kosten.