Mailinglisten-Archive |
On Tuesday, 2. July 2002 11:41, Guido Stepken wrote: > Churchill: Glaube keiner Statistik, die Du nicht selbst gefälscht hast. > > Benchmarks er einfachen Art, da stellt sich sehr schnell heraus, daß > MySQL die Nase da vorne hat, weil > halt MySQL kaum Overhead mit den Rechten und Locks hat. Es kann nur > Table Locks. Momentan gibt es keine unabhängigen Benchmarks. Anlässlich der OSCON wollen sich die MySQL/Postgres/Firebird und Sybase-Entwickler an einen Tisch begeben, und darüber diskutieren. Die einzigen Tabletypes die ein Tablelock durchführen sind MyISAM oder HEAP-Tabellen. Inno-DB oder BDB ermöglichen Record bzw. PageLocking. Wer Transaktionen braucht, wird sicherlich keine MyISAM Tabellen verwenden. Natürlich sind die transaktionsorientierten Tabellenformate etwas langsamer. > Probleme fangen aber da an, wo der Anteil von Writes erheblich ist. Die > Tabelle wird da nämlich von einem Programm, welches z.B. Logs > kontinuierlich schreibt, gesperrt. Zustzliche Writes sind gesperrt. > Reads dann auch. Wer Probleme mit Readlocks hat und trotzdem MyISAM-Tabellen verwendet, der sollte einen Slave einrichten, von dem gelesen wird. Die Writezugriffe sollten dann auf dem Server erfolgen. > MySQL hat das Problem, daß Queries die sehr häufig vorkommen, und immer > dasselbe Ergebnis liefern, nicht gecacht werden, wie das z.B. PostgreSQL > und Oracle tun. In dem Moment bricht MySQL in der Performance ein, > wärend PostgreSQL mit getuntem Buffer hier halt nicht zusammenbricht. Das hängt von Deiner Konfiguration ab. SELECT QUERY_CACHE foo from bar schafft hier Abhilfe. > Wenn also geplant ist, daß die Zahl der Clients über 30-50 liegt, und > die Datenbank intensiv genutzt wird, dann sollte man unbedingt auf > PostgreSQL umsteigen. Immer PostgreSQL sollte man verwenden, wenn man > viele gleichzeitige Queries hat, die immer dasselbe Resultat liefern, > wie z.B. bei dynamsichen Webseiten, die immer identischen Queries > liefern, die z.B. bei der Kombination Linux/Windows, Apache MySQL PHP > ...LAMP/WAMP, weil - ansonsten sollte man einen invertierten Proxy, z.B. > SQUID als Accelerator davorschalten. Wer auf Stored Procedures, Views oder Triggers nicht verzichten kann, für den ist Postgres mit Sicherheit erste Wahl, die anderen aufgezählten Dinge, mögen vielleicht auf ältere MySQL-Versionen zutreffen, nicht aber auf die aktuellen Versionen. Wer mit MySQL und 100 Clients Probleme hat, der hat vermutlich sein System bzw. Anwendung falsch designt, Queries nicht obtimiert oder den Server falsch konfiguriert. Yahoo Finance dürfte wohl das beste Beispiel sein, wie man trotz riesiger Datenmengen und Zugriffszahlen sich die exellente Performance von MySQL zu nutze machen kann. > Wer jedoch mit riesigen Datenbanken hantieren muß, und SMP Server > einsetzt, die ihre komplexeren Queries dann parallel auf eine zerteile > Datenbank absetzen, der kann nur Oracle einsetzen, also ab ca. 100 > Clients mit Datenbanken > 10 GByte. Unsere Geo-Datenbank hat eine Grösse von ca. 30 Gigabyte, und arbeitet hervorragend unter MySQL mit MERGE TABLES. Gruss Georg --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive